【问题标题】:How to call a filter hook in a PHP external file如何在 PHP 外部文件中调用过滤器挂钩
【发布时间】:2013-08-29 13:20:26
【问题描述】:

我正在尝试在 Wordpress 的独立 PHP 文件中调用 filter 挂钩。

这是文件的代码: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 文件上执行过滤器挂钩?

【问题讨论】:

    标签: php wordpress function filter hook


    【解决方案1】:

    第一个也是主要问题$global_text_to_show 不是$global_text_to_show<strike>n</strike>

    钩子init 不是过滤器,它是一个动作:add_action('init', 'test_function');。见Actions and Filters are not the same thing

    以这种方式加载wp-load.php 是...crappy code ;) 见Wordpress header external php file - change title?

    第二个主要问题是为什么什么目的你需要这个吗?
    无论如何,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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 2020-01-02
      • 1970-01-01
      • 2018-10-04
      • 1970-01-01
      • 2015-04-06
      • 1970-01-01
      相关资源
      最近更新 更多