Intereting Posts

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

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

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

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

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 ?> 

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

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

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

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

Solutions Collecting From Web of "Как отображать ожидающие сообщения на главной странице только для редакторов"

Я бы отфильтровал 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 сообщения вашим редакторам для всех ваших запросов на лицевой стороне. Конечно, вы можете ограничить, если хотите.

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