簡體   English   中英

Wordpress過濾器未添加

[英]Wordpress filter not being added

我有一個使用apply_filters的插件,如下所示:

$additional_fields = apply_filters('attachment_meta_add_fields', $additional_fields);

在我的主題的functions.php ,我做:

function addAttachmentMeta($additionalFields) {
    return $addtionalFields;
}
add_filter( 'attachment_meta_add_fields', 'addAttachmentMeta', 1, 1 );

但函數addAttachmentMeta永遠不會運行。

如何更改我的應用或添加過濾器語句以使其調用addAttachmentMeta

編輯:這是一個自定義插件,我根據有關如何添加其他附件元字段的教程編寫。 整個來源是: http//pastebin.com/7NcjDsK5 正如我在評論中提到的,我知道這是在運行和工作,因為我可以在此插件文件中添加其他字段,但不能使用過濾器,因為過濾器沒有添加。

我可以在apply_filters語句之前和之后看到var_dump,但是我用add_filter指向的函數永遠不會被調用。

根據WordPress的核心加載順序 ,在加載並執行所有插件后調用function.php。

你需要確保apply_filters()在插件運行后您add_filter()被調用。 否則,在“應用”過濾器的位置, add_filter()尚未被調用。

你可以做的是使用一個鈎子來使你的插件的一部分在functions.php加載后運行。 您可以使用add_action('after_setup_theme', 'function_name')鈎子。

將插件文件的最后三行包裝在一個函數中,並在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');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM