Add_Filter未按预期工作

时间:2015-04-06 作者:Shamim Hasan

我有一个wordpress插件,其中包含了这个(有一些更改)

$fep_files = array(
    \'first\' => \'first.php\',
    \'second\' => \'second.php\'
);

$fep_files = apply_filters(\'include_files\', $fep_files );

foreach ( $fep_files as $fep_file )
require_once ( $fep_file );
unset ( $fep_files );
现在我添加了我的主题函数。php

function fep_remove ( $fep_files )
{
    if ( isset ( $fep_files[\'first\'] ) ) {
        unset ( $fep_files[\'first\'] );
            }
        //die($fep_files); //to check it fires
    return $fep_files;
}

add_filter( \'include_files\', \'fep_remove\' );
它应该先移除。php,但事实并非如此。我错了一些在哪里,但是在哪里?是否有更好的方法来包含用户可以在需要时包含/排除任何文件的文件?

3 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

插件代码将在主题代码之前运行,因此将在向挂钩添加任何内容之前运行。您需要将处理文件包含的代码添加到加载所有插件后运行的其他挂钩,如after_setup_theme

这将有助于:Is there a flowchart for wordpress loading sequence?

SO网友:Jer

我认为这里的一些答案需要更新。(只为将来我或其他人在这一页上寻找答案时使用)。

插件排序似乎取决于您使用的Wordpress安装类型。如果您使用的是多站点安装,那么插件确实会按照其激活的顺序进行处理。

但是,在单个wordpress安装中,它们是按字母顺序激活的。因此,如果您遇到需要更新另一个插件的初始化过滤器或操作的问题,最好将插件命名为以下划线开头的名称。

例如:\\u my\\u custom\\u plugin/my\\u custom\\u plugin。php

供参考。请参见中的704-713wp-admin/includes/plugin.php

SO网友:nobilis

就顺序而言,前面的答案很好,但我不知道如何使过滤器/挂钩与这些指令一起工作。

我的解决方案是创建一个包含过滤器的自定义插件,确保它按字母顺序排在包含我要添加的过滤器的插件之前。

换句话说,输入代码plugings/a-custom-plugin.php 使用启动文件

<?php
/*
Plugin Name: My Custom Plugin
*/

结束

相关推荐

Search with filters and title

我想搜索custom_post 按标题和ACF字段。所以,我用了WP_Query WordPress函数,但我不能按标题过滤,只能按过滤器过滤。当我提交表单时,我有这样的URL:http://example.com/?s=titre&filter1=condition1&filter2=condition2&filter3=condition3 我的代码:$title = $_GET[\'s\']; $args = array( \'pagenam