Я пытаюсь вызвать filter
крючок в автономном PHP- файле в WordPress.
Это код файла: my_external_file.php :
<?php require( dirname(__FILE__) . '/../../../../../../../wp-load.php'); add_filter('init', 'test_function'); function test_function (){ global $global_text_to_shown; $global_text_to_shown = 'Hello World'; } global $global_text_to_shown; $quicktags_settings = array( 'buttons' => 'strong,em,link,block,del,ins,img,ul,ol,li,code,spell,close' ); //This work fine, shown editor good. wp_editor( $global_text_to_show, 'content', array( 'media_buttons' => false, 'tinymce' => true, 'quicktags' => $quicktags_settings ) ); //Load js and work fine the editor - wp_editor function. wp_footer(); ?>
Проблема в том, что фильтр не выполняется, поэтому функция не выполняется.
Как я могу выполнить привязку фильтра к этому внешнему файлу PHP ?
Первая и основная проблема $global_text_to_show
не $global_text_to_show
. n
init
hook не является фильтром, это действие: add_action('init', 'test_function');
, См. « Действия и фильтры» – это не одно и то же .
Загрузка wp-load.php
таким образом … дерьмовый код 😉 См. Заголовок WordPress внешнего php-файла – изменить название? ,
Вторая главная проблема – зачем и зачем вам это нужно?
Во всяком случае, init
не будет работать, используя фильтр the_editor_content
. Хотя я не понимаю цели:
<?php define( 'WP_USE_THEMES', false ); require( $_SERVER['DOCUMENT_ROOT'] .'/wp-load.php' ); // Requires PHP 5.3. Create a normal function to use in PHP 5.2. add_filter( 'the_editor_content', function(){ return 'Hello World'; }); $quicktags_settings = array( 'buttons' => 'strong,em,link,block,del,ins,img,ul,ol,li,code,spell,close' ); ?><!DOCTYPE html> <html> <head> <?php wp_head(); ?> </head> <body> <?php wp_editor( '', 'content', array( 'media_buttons' => false, 'tinymce' => true, 'quicktags' => $quicktags_settings ) ); wp_footer(); ?> </body> </html>