あなたのホームページをプレビューモードで表示する方法はありますか。そうすれば、それらを公開する前に私の投稿がホームページ上でどのように見えるかを確認することができます(つまり、おすすめの画像が正しく見えることなど)。
自分の投稿をprivate
に設定して個人的にホームページに表示することができると思います。
表示を非公開に変更すると、表示されているように投稿またはページのステータスが[非公開]に変わります。非公開投稿は自動的に公開されますが、適切な権限レベルを持つユーザー(編集者または管理者)以外には表示されません。
ここ を参照してください。
これがサイト上のdraft
投稿を表示するための1つのアイデアです。
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:これはいくつかのテストや調整が必要かもしれません...しかしあなたはアイデアを得ます;-)