Просмотр главной страницы в режиме предварительного просмотра

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

7 голосов | спросил Matt Whetton 16 Jpm1000000pmThu, 16 Jan 2014 13:27:08 +040014 2014, 13:27:08

1 ответ


6

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

  

Как только вы измените видимость на приватный, статус сообщения или страницы   изменения в «Частная публикация», как показано. Частные сообщения   автоматически публикуется, но не отображается никому, кроме тех,   соответствующие уровни разрешений (редактор или администратор).

Смотрите здесь .


Вот одна идея просмотра сообщений draft на сайте:

Повторим использование параметра preview, чтобы добавить draft в текущий вид страницы, например:

- example.com/?preview=true
- example.com/2014/01/?preview=true

Затем мы модифицируем все внешние запросы для входа в систему с помощью:

add_filter( 'posts_where', function( $where ){
   if( ! is_admin() 
       && is_user_logged_in() 
       && 'true' === get_query_var( 'preview' ) 
       && ! is_singular() )
   {
        global $wpdb;
        $from = sprintf( "%s.post_status = 'publish'", $wpdb->posts ) ;
        if( current_user_can( 'edit_others_posts' ) )
        {
            // add drafts from all users:
            $to = sprintf( "%s.post_status IN ( 'publish', 'draft' ) ", $wpdb->posts ) ;
        }
        else
        {
            // add drafts from current user:
            $sql = " ( %s.post_status = 'publish' 
                       OR ( %s.post_status = 'draft'  AND %s.post_author = %d ) ) ";
            $to = sprintf( $sql, 
                           $wpdb->posts, 
                           $wpdb->posts, 
                           $wpdb->posts, 
                           get_current_user_id() 
                  );
        }
        $where  = str_ireplace( $from, $to, $where );       
   }
   return $where;
});

, но мы могли бы использовать is_main_query(), чтобы ограничить модификации основного запроса.

ps: для этого может потребоваться некоторое тестирование или настройки ... но вы получите эту идею; -)

ответил birgire 16 Jpm1000000pmThu, 16 Jan 2014 16:06:55 +040014 2014, 16:06:55

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132