wordpress удаляет просмотры из ссылок действий в настраиваемом сообщении

Я создал пользовательский тип сообщения, но я хочу удалить ссылку «Вид» из действий в списке настраиваемого сообщения.

Я пробовал этот фрагмент

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

У вас есть опечатка в вашем add_filter. Попробуй это:

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

Разница между методами и функциями class заключается в том, что вы не бросаете array() при вызове функции и не пропускаете ведущую public/protected/private/static строку перед function . Также не используйте & при вызове $this (который является текущим объектом класса), так как это синтаксис PHP4 для передачи класса в качестве ссылки. PHP5 не нуждается в этом. Третья нота заключается в том, что вы используете array() в способе array( __CLASS__, 'method_name' ) . Приоритет 10 и количество аргументов 1 как отдельные аргументы и не входят в массив.

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

Последнее примечание: не просто хватайте фрагмент из где-то, если вы не понимаете, что делаете. Возьмите кого-нибудь, кто может прочитать это для вас. Подобные вещи могут серьезно испортить вашу установку.

Вам также необходимо удалить «общедоступный», если он не находится в классе.

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

Ни один из этих ответов не указывает, что ОП спрашивает, как это сделать для пользовательского типа сообщения. Снятие $action['view'] удалит его для всех сообщений, страниц и пользовательских типов сообщений, если вы не уточните их.

Вот что я придумал. (Замените «mycustomtheme» вашей темой или плагином, замените «myposttype» на свой собственный тип сообщения.)

 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; } с 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; }