web-dev-qa-db-ja.com

最近の投稿にカスタム投稿タイプを表示

次のような問題があります。

カスタム投稿タイプmatratzeを作成しましたが、現在カスタム投稿の他に他の投稿はありません。したがって、最近の投稿の下には何も表示されていません。

カスタム投稿の種類は次のようになります。

[カスタム投稿]

私の最近の投稿は表示されません。

【メインホームページ】

私は以下を試しました:

add_filter( 'pre_get_posts', 'my_get_posts' );

function my_get_posts( $query ) {

    if ( is_home() && $query->is_main_query() )
        $query->set( 'post_type', array( 'post', 'page', 'matratze' ) );

    return $query;
}

私が間違っていることについて何か提案はありますか?

お返事ありがとうございます。

2
Kare

サイドバーの通常の最近の投稿ウィジェットにカスタム投稿タイプを表示するには、
私達は私達にとって完璧に働く以下の関数を使います。
私たちは独自の関数を使用して、プラグインによってしばしば発生するオーバーヘッドを防ごうとします。

注:functions.phpにこの関数を追加する前にバックアップを作成してください。

/**
 * Display CPT on Recent Post widget
 *
 * @version WP 4.6.1
 */
add_filter( 'widget_posts_args', 'wpse241060_widget_recent_post_4_cpt' );
function wpse241060_widget_recent_post_4_cpt( $params )
{
    $params['post_type'] = array( 'post', 'cpt01', 'cpt02');
    return $params;
}

続きを読む Codex

2
Charles

Wordpressは wp_get_recent_posts() 関数を提供して、あらゆる種類の投稿から最近の投稿の数を回収します。カスタム投稿タイプを引数として渡して、最近の投稿リストを取得することができます。

$args = array(
    'numberposts' => '5',
    'orderby' => 'post_date',
    'order' => 'DESC',
    'post_type' => 'matratze',
    'post_status' => 'publish'
);
$recent_posts = wp_get_recent_posts( $args );

Wordpress Core最近の投稿ウィジェットはカスタム投稿タイプから投稿を一覧表示する機能を提供しません。ウィジェットを使用して投稿を一覧表示したい場合は、 サイドバーの投稿 プラグインを使用できます。 このプラグインは非常に強力で、カスタム投稿タイプの最近の投稿を含む多くの基準に基づいて投稿を表示するためのさまざまなオプションを提供します。

更新:

これがあなたの特定のケースに使えるコードです:

あなたはWP_Queryを使用する最近の投稿を表示するためにタブウィジェットを使用しています。そのため、pre_get_postsを使用して投稿タイプフィルタを設定できます。

function filter_recent_get_posts($query) {
    if (isset($_POST['tab']) && ($_POST['tab'] == 'recent')) {
        $query->set('post_type', 'matratze');
    }
}
add_action( 'pre_get_posts', 'filter_recent_get_posts' );
2
C Sabhar