我有一个使用的插件apply_filters
像这样:
$additional_fields = apply_filters('attachment_meta_add_fields', $additional_fields);
在我的主题中functions.php
, I do:
function addAttachmentMeta($additionalFields) {
return $addtionalFields;
}
add_filter( 'attachment_meta_add_fields', 'addAttachmentMeta', 1, 1 );
但功能addAttachmentMeta
从不运行。
我如何更改我的 apply 或添加过滤器语句以使其addAttachmentMeta
被叫?
编辑:
这是我根据有关如何添加其他附件元字段的教程编写的自定义插件。整个源码在这里:http://pastebin.com/7NcjDsK5 http://pastebin.com/7NcjDsK5。正如我在评论中提到的,我知道它正在运行并工作,因为我可以在此插件文件中添加其他字段,但不能使用过滤器,因为不会添加过滤器。
我可以在之前和之后看到 var_dumpsapply_filters
声明,但我指出的函数add_filter
永远不会被叫到。
根据订购 WordPress 的核心负载 https://i.stack.imgur.com/ikkIU.png, function.php 在所有插件加载并执行后被调用。
您需要确保apply_filters()
在你的插件运行之后add_filter()
叫做。否则,在“应用”过滤器时,add_filter()
只是还没有被调用。
你可以做的是使用一个钩子让你的插件的这一部分在functions.php加载后运行。你可以使用add_action('after_setup_theme', 'function_name') http://codex.wordpress.org/Plugin_API/Action_Reference/after_setup_theme hook.
将插件文件的最后三行包含在一个函数中,并在functions.php运行后执行它。
function addAttachmentMeta() {
$additional_fields = array();
$additional_fields = apply_filters('attachment_meta_add_fields', $additional_fields);
$am = new Attachment_Meta( $additional_fields );
}
add_action('after_setup_theme', 'addAttachmentMeta');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)