Плагины для WordPress wp_enque_script () - PullRequest
0 голосов
/ 26 июля 2011

, поэтому я разрабатываю свой первый плагин для WordPress, и у меня возникают некоторые трудности ... Я делаю это объектно-ориентированный ...
Внизу, когда 'plugins_loaded', я создаю новый экземпляр myClass. Он также запрашивает JavaScript, каждый раз, когда загружается любая страница. Эта регистрация скрипта работает, потому что я получаю console.log при каждой загрузке страницы. Затем он регистрирует действие над publish_post, которое запускается, когда администратор публикует (сохраняет) новое сообщение и вызывает мой метод publish_post ().
Метод вызывается при публикации сообщения; я знаю это, потому что если я раскомментирую две первые строки, sctipt умрет с моим var_dump.
Моя проблема в том, что wp_enque_script () не работает в этом методе. По какой-то причине мой сценарий не называется ...
Вот код:

<?php
class myClass{  
    function __construct(){     
        // hooks & filters..
        add_action( 'publish_post', array($this, 'publish_post'));
        wp_enqueue_script( 
            'plugin', //$handle
             plugins_url('/js/plugin.js', __FILE__)//$src
        );
    }

    function publish_post(){
        //global $wp_query;
        //die(var_dump($wp_query));
        wp_enqueue_script( 
            'publish', //$handle
             plugins_url('/js/publish.js', __FILE__)//$src
        );
    }
}
/* Initialise outselves */
add_action( 'plugins_loaded', create_function( '', 'global $myObject; $myObject = new myClass;' ));
?>

У кого-нибудь есть идеи, почему это происходит? спасибо

1 Ответ

0 голосов
/ 26 июля 2011

Просто была такая же проблема.Вы должны добавить его в ловушку, например, в init (я пробовал с ловушкой admin_head, но это не сработало, поэтому я выбрал init, потому что увидел его в другом плагине. И, похоже, он мне подходит)1002 * В вашей конструкции добавьте:

add_action('init', array($this, 'loadMyScripts'));

и в функцию, вызванную действием:

public function loadMyScripts()
{
wp_enqueue_script( 
            'publish', //$handle
             plugins_url('/js/publish.js', __FILE__)//$src
        );

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...