Intereting Posts
Панель навигации отображается вертикально на Mozilla get_posts () не работает в functions.php Передача переменной PHP в javascript Включить уведомление об обновлении, отключить обновления. Почему только первая операция выполняется в моем цикле – за исключением последнего повтора? Var_dump ACF "API" Переопределить wp_link_pages pagebreak с фильтром не удается получить доступ к wp-admin после сбоя и восстановления таблицы параметров Сообщение об ошибке «Cheatin 'uh?» В многострочных каталогах темы элемент отображения диапазона отображения, если в некоторых типах сообщений Функция ограничения количества сообщений в taxonomy.php WordPress 3.2.1: jQuery не определен, разбивается панель администратора Идентификационные условные методы взаимодействия с пользователем не сохраняются add_rewrite_rule для отношений родителя с дочерним сообщением Изменение порядка виджетов в соответствии с текущей страницей?

Функция для предотвращения сбоев пользователей

Есть ли способ предотвратить / скрыть кнопку мусора для комментариев?

Обратите внимание, что я хочу, чтобы пользователи не путали мусор для комментариев. Кажется, не найти способ. Есть ли способ сделать это без плагина? Но если мне нужно, я буду использовать плагин.

Это то, что я пробовал до сих пор, но не добился его работы.

add_filter( 'post_row_actions', 'remove_row_actions', 10, 1 ); function remove_row_actions( $actions ) { if( get_post_type() === 'post' ) unset( $actions['edit'] ); unset( $actions['view'] ); unset( $actions['trash'] ); unset( $actions['inline hide-if-no-js'] ); return $actions; } 

Во-первых, обратите внимание на код: если вы не инкапсулируете код условного выражения в фигурные скобки: if($something){ encapsulated_actions(); } if($something){ encapsulated_actions(); }
он выполнит только следующую строку.

Итак, вы должны использовать:

 if( 'post' != get_post_type() ) // if different of desired type, do nothing and return default return $actions; // do your thing and return modified var unset ($actions['spam'], $actions['trash'] ); return $actions; 

Или:

 if( 'post' == get_post_type()) { unset ($actions['spam']); unset ($actions['trash']); /* The following is best use */ // unset ($actions['spam'], $actions['trash'] ); } // returns modified or unmodified var depending on previous check return $actions; 


Нам нужно настроить таргетинг на четыре места, чтобы заблокировать / скрыть отлаживание комментариев. Здесь я проверяю административную роль. Для проверки конкретных пользователей используйте get_current_user_id() .

Имена функций указывают идентификатор исходного вопроса здесь, в WordPress Answers, например, wpse_92313 : Экран комментариев в бэкэнд, как отключить Quick Edit | Редактировать | История | Спам | для не админов

1) Строка действия быстрого редактирования

 add_filter( 'comment_row_actions', 'comments_row_wpse_92313', 15, 2 ); function comments_row_wpse_92313( $actions, $comment ) { /* Type of the parent post */ // $parent_type = get_post_type( $comment->comment_post_ID ) ); if( !current_user_can( 'delete_plugins' ) ) unset($actions['trash'] ); return $actions; } 

2) Строка Views ( All | Pending | ... | Trash )

 add_filter( 'views_edit-comments', 'wpse_30331_custom_view_count', 10, 1); function wpse_30331_custom_view_count( $views ) { if( !current_user_can( 'delete_plugins' ) ) unset( $views['trash'] ); return $views; } 

3) Массовые действия

Я только что открыл фильтр 'bulk_actions-' . $this->screen->id 'bulk_actions-' . $this->screen->id

 add_filter( 'bulk_actions-edit-comments', 'remove_bulk_trash_wpse_92534' ); function remove_bulk_trash_wpse_92534( $actions ) { if( !current_user_can( 'delete_plugins' ) ) unset( $actions['trash'] ); return $actions; } 

4) Блокировка прямого доступа к мусорному экрану

Перенаправляет example.com/wp-admin/edit-comments.php?comment_status=trash на главный экран комментариев.

 add_action( 'admin_head-edit-comments.php', 'wpse_74488_block_trash_access' ); function wpse_74488_block_trash_access() { // Don't run the function for Admins if( current_user_can( 'delete_plugins' ) ) return; if( isset( $_GET['comment_status'] ) && 'trash' == $_GET['comment_status'] ) { wp_redirect( admin_url( 'edit-comments.php' ) ); exit; } }