применять фильтры только к конкретному сообщению без проверки параметров URL

Я создал собственный тип сообщения, названный как: слайдер, в моем классе плагина, я добавляю фильтр, который вызывает метод remove_row_action, который unsets рассматривает ссылки из действий

add_filter('post_row_actions', array(&$this, 'remove_row_actions'), 10, 1); public function remove_row_actions($action) { if (isset($_GET['post_type']) && $_GET['post_type'] == 'slider')) { unset($action['view']); return $action; }else{ return $action; } } 

Он работает отлично, но я считаю, что должен быть более чистый способ, которым add_filter применяется только для пользовательского типа сообщения, вместо того, чтобы проверять его с помощью переменной GET

Да, ты прав. Существует умный способ. Фильтр post_row_actions может принимать и второй параметр $ post, из которого вы можете получить его post_type. См. Код:

 add_filter( 'post_row_actions', array( $this, 'remove_row_actions' ), 10, 2); public function remove_row_actions( $action, $post ) { if ( 'slider' === get_post_type( $post ) ) { unset $action['view']; return $action; } return $action; } 

Просто проверьте объект get_current_screen() . Он расскажет вам, что у вас есть. То же самое относится к аргументу $query который вы можете найти внутри фильтров parse_request и pre_get_posts .