在插件类中使用ATTACH_FIELS_TO_EDIT筛选器

时间:2012-07-05 作者:Richard Sweeney

我正在使用OOP编写一个插件。我意识到过滤器和动作挂钩需要放在WordPress中的构造函数方法中,如下所示:

add_action(\'wp_enqueue_scripts\', array($this, \'add_js_css\'));
据我所知,过滤器应该是一样的:

add_filter(\'attachment_fields_to_edit\', array($this, \'attachment_fields\', 15, 2));
Theattachment_fields() 方法应该返回一个数组(我在类外对其进行了测试,它可以正常工作),但它似乎返回null 在类内调用时。我猜这是因为它被称为课堂内部,但我不知道该怎么办!

如果有用,该方法如下所示:

public function attachment_fields($form_fields) {
    global $post;
    $file = wp_get_attachment_url($post->ID);
    unset($form_fields[\'post_excerpt\']);
    unset($form_fields[\'post_content\']);
    unset($form_fields[\'url\'][\'helps\']);
    $form_fields[\'url\'][\'label\'] = \'URL\';
    $form_fields[\'url\'][\'html\'] = "<input type=\'text\' class=\'text urlfield\' name=\'attachments[$post->ID][url]\' value=\'" . esc_attr($file) . "\' /><br />";
    $form_fields[\'buttons\'] = array(
    \'label\' => \'\',
    \'value\' => \'\',
    \'html\' => "<input type=\'submit\' class=\'button\' name=\'send[$post->ID]\' value=\'" . esc_attr__( \'Add MP3\' ) . "\' />",
    \'input\' => \'html\'
    );
    return $form_fields;
}
有什么建议吗?

1 个回复
SO网友:chrisguitarguy

如果这确实是您的代码:

<?php
add_filter(\'attachment_fields_to_edit\', array($this, \'attachment_fields\', 15, 2));
它不起作用的原因是括号放错了位置。尝试以下操作:

<?php
add_filter(\'attachment_fields_to_edit\', array($this, \'attachment_fields\'), 15, 2);

结束

相关推荐

Protect Uploads in Multisite

我正在使用WordPress multisite(3.3.1),并试图保护从某些博客上传的内容不被热链接和直接访问。这与How to Protect Uploads, if User is not Logged In?, 但我只想通过服务器上运行的脚本访问上传内容(即,只有服务器可以显示/提供上传服务),因此内容可以受到WordPress用户权限的保护。例如,我有一个名为40c的字段。jpg位于localhost/files/2011/07/40c。jpg;我想让文件显示出来only 在本地域上由HTML