web-dev-qa-db-ja.com

アーカイブでの投稿のプレビュー/カスタム投稿の種類

私は自分のウェブサイト上でいくつかのカスタム投稿タイプを持っています。その1つがフロントページのスライダーです。テキスト、画像、リンクを追加し、CPTを公開するとすぐにスライドとして表示されるので、うれしいです。問題は、スライドをライブにする前にプレビューする必要があるときです。投稿プレビューボタンでその特定のCPT投稿をプレビューできますが、明らかに実際のスライドが表示され、そのスライド、ギャラリー、またはアーカイブ内のスライドの外観はわかりません。

下書きをアーカイブでプレビューするための解決策を探しています。任意の助けは大歓迎です。

1
Jukov

get_postsWP_Queryメソッドは、投稿が表示されるまでは大変な作業です。しかしそれが何かをする前に、あなたがフックできるpre_get_postsと呼ばれるフックがあります。フックされた関数は現在の問い合わせオブジェクトへの参照(ポインタ)を受け取ります。だから、あなたはあなたが好きなものになるようにクエリの変数を変更することができます。

そう...

<?php
add_action( 'pre_get_posts', 'wpse33020_pre_get_posts' );
function wpse33020_pre_get_posts( $query_obj )
{
    // get out of here if this is the admin area
    if( is_admin() ) return;

    // if this isn't an admin, bail
    if( ! current_user_can( 'manage_options' ) ) return;

    // if this isn't your slide post type, bail
    if( ! isset( $query_obj->query_vars['post_type'] ) || 'slider' != $query_obj->query_vars['post_type'] ) return;

    // change our query object to include any post status
    $query_obj->query_vars['post_status'] = 'any';
}

あなたはおそらくあなたのpost_typesliderからあなたがスライダーCPTが命名したものに変更する必要があるでしょう。

プラグインとして: https://Gist.github.com/1343219

4
chrisguitarguy