我已经创建了一个自定义帖子类型,但我想从自定义帖子列表中的操作中删除视图链接。
我试过这个片段
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
最合适的回答,由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;
}