Intereting Posts
Потеря активного состояния в меню Как установить уникальную тему WordPress для разных страниц? Отображение текущей подкатегории wpautop на разделе Получить идентификатор сообщения в окне редактирования администратора, иначе сгенерируйте его? Слияние субдомена в сети wordpress Путь в dev-сервере работает; один и тот же путь в prod-сервере нарушен Идеальная встроенная динамическая инъекция CSS Могу ли я настроить адрес электронной почты на контактную форму 7? Как указать мой домен на установку WordPress в подкаталоге? Как я могу показать / добавить / сохранить пользовательские обмены как массив значений? Добавить сообщение об ошибке на странице с защитой паролем Загрузка плагина в формате .zip wp_kses () разделяет атрибуты данных, даже если они находятся в разрешенном списке регистрировать пользователя только с определенным именем хоста

Список сообщений Admin (edit.php) по сообщениям

Я пишу плагин, который создает сообщения навалом. Я предоставляю пользователю возможность заранее установить определенные параметры созданных сообщений. Но было бы полезно использовать интерфейс WordPress по умолчанию «Все сообщения» ( edit.php ) для тонкой настройки деталей после создания сообщений. Я посмотрел на class-wp-list-table.php и дублирование его функциональности будет много работать.

Лучшим решением было бы просто отправить пользователя на edit.php – ограничено только сообщениями, созданными моим плагином. У меня есть идентификаторы сообщений, поэтому я ищу решение, такое как edit.php?id=1&id=2 , edit.php?id=1&id=2 таблицу с хорошим списком с только сообщениями с этими идентификаторами.

Это может быть достигнуто с помощью pre_get_posts .

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

 /** * Usage: * http://example.com/wp-admin/edit.php?my_pids=4088,4090,4092,4094 */ add_filter( 'pre_get_posts', 'limit_post_list_wpse_96418' ); function limit_post_list_wpse_96418( $query ) { // Don't run on frontend if( !is_admin() ) return $query; global $pagenow; // Restrict to Edit page if( 'edit.php' !== $pagenow ) return $query; // Check for our filter if( !isset( $_GET['my_pids'] ) ) return $query; // Finally, filter $limit_posts = explode( ',', $_GET['my_pids'] ); // Convert comma delimited to array $query->set( 'post__in', $limit_posts ); return $query; }