Wsparcie » Wtyczki » Uruchamianie funkcji zefiniowanej przez wtyczkę

  • Witam
    Mam proste głupie pytanie – jak mam odwołać się w Wordpresie do funkcji zdefiniowanej przez jakąś wtyczkę? Chcę użyć takiej funkcji w prostym skrypcie (odpalanym ręcznie z palca, lub cronem).
    Dokładnie chodzi mi o Pods Framework (wtyczka do definiowania Custom Post Type), w referencjach znalazłem funkcję dodającą treści do Custom Pods – (http://pods.io/docs/code/pods/add/), oryginalny przykład użycia funkcji poniżej:

    [php]
    <?php
    // Get the book pod object
    $pod = pods( 'book’ );

    // To add a new item, let’s set the data first
    $data = array(
    'name’ => 'New book name’,
    'author’ => 2, // User ID for relationship field
    'description’ => 'Awesome book, read worthy!’
    );

    // Add the new item now and get the new ID
    $new_book_id = $pod->add( $data );

    // If you’re already using Pods for another item
    $pod = pods( 'book’, 4 );

    // You can still an add item without effecting anything
    $new_book_id = $pod->add( $data );
    [/php]

    Niestety skrypt wywala mi niezdefiniowaną funkcję, zwykłe includowanie do pliku z definicją funkcji nie pomaga, podobnie mam problem jak definiuję skrypt jako wtyczkę.
    Co mam zrobić aby skrypt w fomie powyżej działał i mógł być umieszczony w dowolnym miejscu w instalacji WordPressa?
    Mile widziane najprostsze rozwiązania
    dzięki

Viewing 4 replies - 1 through 4 (of 4 total)
  • Ale odpalasz z poziomu WP, czy samodzielnym skryptem?

    Thread Starter Mikolaj321

    (@mikolaj321)

    jako skrypt z palca. nie mam potrzeby integrowania z WP. chodzi tylko o dodanie danych do CPT.

    zrobiłem include do wp-load.php (z katalogu głównego) i include do definicji funkcji.

    nie pomaga.

    Thread Starter Mikolaj321

    (@mikolaj321)

    poniżej to co chę zrobić:

    <?php
    include 'http://www.{mój adres}/wordpress/wordpress/wp-load.php';
    include 'http://www.{mój adres}/wordpress/wordpress/wp-content/plugins/pods/includes/classes.php';
    include 'http://www.{mój adres}/wordpress/wordpress/wp-content/plugins/pods/classes/Pods.php';
    include 'http://www.{mój adres}/wordpress/wordpress/wp-content/themes/twentytwelve/functions.php';
    
    $pod = pods( 'events' );
    
    // dane będą sobie pobierane skądinąd i dodawane jak poniżej
    $data = array('nazwa' => 'aaaa,
    'miejsce' => 'aaaa'
    );
    
    $new_event_id = $pod->add( $data );
    
    ?>

    działa tylko w jednym miejscu – function.php templatki (tam nie muszę incluidować, pobierane dane z wtyczki Pods) , tak, że za każdym refreshem jakiejkolwiek strony dodaje treść do postu typu event (czyli to co chcę osiągnąć), ale nie w ten sposób. chcę aby kod poniższy był odpalany ręcznie.

    sama funkcja jest ok, robię jakieś złe adresowanie. funkcja traci aktywność poza plikiem functions.

    na pewno dobrze includuję zgodnie z referencją dwóch funkcji przynależnych wtyczce Pods:
    http://pods.io/docs/code/pods/
    http://pods.io/docs/code/pods/add/

    wszędzie indziej mam:
    Call to undefined function pods()

    także wtedy gdy tworzę wtyczkę tym samym kodem.

    czy to może być kwestia, że nie opiewam całości add_action albo coś podobnego? chcę ingerować gołym prostym skryptem w dane CPT a nie w sam frontend.

    robię jakiś bardzi głupi błąd, ale nie wiem jaki

    No tak, to nie zadziała ;p

    Zapinasz tylko przez require pliczek wp-blog-header.php (podajesz ścieżkę do pliku, a nie adres URL)
    …i tyle.

    Potem już tylko sprawdzasz czy Pods istnieje http://php.net/manual/en/function.function-exists.php i jedziesz z koksem.

Viewing 4 replies - 1 through 4 (of 4 total)
  • Temat ‘Uruchamianie funkcji zefiniowanej przez wtyczkę’ jest zamknięty na nowe odpowiedzi.