WordPress从自定义帖子中的操作链接中删除视图

时间:2013-03-14 作者:meWantToLearn

我已经创建了一个自定义帖子类型,但我想从自定义帖子列表中的操作中删除视图链接。

我试过这个片段

   add_filter( \'post_row_actions\',array(&$this, \'remove_row_actions\', 10, 1));
   public function remove_row_actions($action){
       unset($action[\'view\']);
       return $action;
   }
但它抛出

call_user_func_array() expects parameter 1 to be a valid callback, array must have exactly two members in D:\\wamp\\www\\wordpress\\wp-includes\\plugin.php on line 173

4 个回复
最合适的回答,由SO网友:david.binda 整理而成

您的add\\u筛选器中有输入错误。尝试以下操作:

add_filter( \'post_row_actions\',array(&$this, \'remove_row_actions\'), 10, 1);

public function remove_row_actions($action){
    unset($action[\'view\']);
    return $action;
}

SO网友:kaiser

两者之间的区别class 方法和函数是指array() 调用函数时,ommit为前导public/protected/private/static 前面的字符串function. 也不要使用& 呼叫时$this (它是当前的类对象),因为它是PHP4语法,用于将类作为引用传递。PHP5不需要这个。第三个注意事项是,您使用array() 在路上array( __CLASS__, \'method_name\' ). 优先级10 以及参数的数量1 as分隔参数,不属于数组内部。

   add_filter( \'post_row_actions\', \'wpse90843_remove_row_actions\' );
   public function wpse90843_remove_row_actions( $action )
   {
       unset $action[\'view\'];
       return $action;
   }
Last note: 如果你不明白自己在做什么,不要只是从某个地方抓住一个片段。找一个能帮你读的人。像这样的东西会严重破坏你的安装。

SO网友:squarecandy

这些答案都没有解决OP询问如何对自定义帖子类型执行此操作的问题。不稳定$action[\'view\'] 如果您不了解更多详细信息,将删除所有帖子、页面和自定义帖子类型的内容。

这是我想到的。(将“mycustomtheme”替换为主题或插件slug,将“myposttype”替换为自定义帖子类型slug。)

add_filter( \'post_row_actions\', \'mycustomtheme_remove_myposttype_row_actions\' );
function mycustomtheme_remove_myposttype_row_actions( $action )
{
    if (\'myposttype\' == get_post_type()) {
        unset($action[\'view\']);
    }
    return $action;
}

SO网友:Jeff Mattson

如果“public”不在类中,您还需要删除它。

add_filter( \'post_row_actions\', \'wpse90843_remove_row_actions\' );
function wpse90843_remove_row_actions( $action )
{
    unset($action[\'view\']);
    return $action;
}

结束

相关推荐

Swagger主题中的Pre_Get_Posts和BBPress

在我使用的主题中有一个自定义项。php文件,其中以下代码发出一个pre\\u get\\u post函数,该函数将自定义post类型添加到原始查询对象中。我知道你不能有条件地加载这个。。。它正在破坏论坛上的BBPress页面。php拒绝BBP完全加载某些帖子类型(主题、论坛等)。 if (!is_admin()){ add_filter(\'pre_get_posts\', \'query_post_type\'); function query_po