Intereting Posts
Динамический радарный график на основе введенных пользователем значений Обнаружить изменение в site_url и home_url Тип пользовательского сообщения WordPress Повторение 404 ошибок Одностраничные разрывы страницы, когда сообщение составляет более 30 000 слов Правила пользовательской таксономии и типа переписки Отключить виджеты WordPress по умолчанию на боковой панели get_intermediate_image_sizes Получить имена размеров, но как получить размеры? Гипермархическое меню боковой панели добавить миниатюру youtube в индекс и single.php добавить видео Как добавить пользовательский тип сообщения, который выглядит и ведет себя точно так же, как и сообщения? Получение значений атрибутов shortcode и содержимого короткого кода с помощью JavaScript regex Изображения в СМИ не отображаются, а не разбиты Инициализировать среду WordPress для использования в сценарии командной строки Показывать только разбиение на страницы, когда количество сообщений превышает шоу Локализация многопользовательской сети

Как отображать ожидающие сообщения на главной странице только для редакторов

Я работаю над проектом, где редакторы должны видеть ожидающие сообщения на главной странице, чтобы улучшить их перед публикацией.

Может быть, есть что-то делать с петлей таким образом:

Если журналы вошли в систему:

if ( current_user_can('edit_post') ) { display the pending posts } 

Арги для отображения опубликованных и ожидающих сообщений:

 $args = array( 'post_type' => 'post', 'post_status' => 'publish, pending' ); 

Завершенный цикл:

 <?php if ( current_user_can('edit_post') ) { $args = array( 'post_type' => 'post', 'post_status' => 'publish, pending' ); } else { $args = array( 'post_type' => 'post', 'post_status' => 'publish' ); } $wp_query = new WP_Query($args); while ( have_posts() ) : the_post(); ?> …the content here... <?php endwhile; ?> <?php wp_reset_postdata(); // reset the query ?> 

Это работает для меня.

Считаете ли вы, что это правильно?

Возможно, код может быть улучшен.

Спасибо за помощь.

Я бы отфильтровал pre_get_posts .

 function allow_pending_posts_wpse_103938($qry) { if (!is_admin() && current_user_can('edit_posts')) { $qry->set('post_status', array('publish','pending')); } } add_action('pre_get_posts','allow_pending_posts_wpse_103938'); 

Это должно показывать pending сообщения вашим редакторам для всех ваших запросов на лицевой стороне. Конечно, вы можете ограничить, если хотите.

Я бы добавил некоторый код, чтобы отметить ожидающие сообщения, чтобы ваши редакторы знали, что ожидает.