このwpmudevの投稿 は私の気持ちをちょうど約14回まとめたものです。
おすすめコンテンツはカスタム投稿タイプをサポートしていません - カスタム投稿タイプがタグ分類をサポートしている場合でも投稿のみが選択されます
カスタム分類法を共有する2つのCPTを追加しました。 inc/featured-content.php
、js/slider.js
、functions.php
を見て、運なしでタグ付けしようとしました。
これらの投稿タイプを追加してホームページの[おすすめコンテンツ]スライダに表示するにはどうすればよいですか。
twentyfourteen_get_featured_posts
フィルタTwentyFourteenテーマでtwentyfourteen_get_featured_posts
フィルタがどのように使用されているかを理解するには、少し掘り下げが必要でした。
注目のコンテンツは、 フェッチされた :
$featured_posts = twentyfourteen_get_featured_posts();
しかし、この関数はこの一行だけです:
return apply_filters( 'twentyfourteen_get_featured_posts', array() );
だから肉はどこにありますか?
この 行 から始まる Featured_Content
クラスにあります。
add_filter( $filter, array( __CLASS__, 'get_featured_posts' ) );
$filter
の由来は次のとおりです。
$filter = $theme_support[0]['featured_content_filter'];
ここで、
$theme_support = get_theme_support( 'featured-content' );
functions.php
では、
// Add support for featured content.
add_theme_support( 'featured-content', array(
'featured_content_filter' => 'twentyfourteen_get_featured_posts',
'max_posts' => 6,
) );
それで我々はついにそれを見る:
$filter === 'twentyfourteen_get_featured_posts';
デフォルトのおすすめコンテンツ投稿を上書きするには、これを試すことができます。
add_filter( 'twentyfourteen_get_featured_posts', function( $posts ){
// Modify this to your needs:
$posts = get_posts( array(
'post_type' => array( 'cpt1', 'cpt2' ),
'posts_per_page' => 6,
'featured_tax' => 'featured_term'
) );
return $posts;
}, PHP_INT_MAX );
次のステップは、それをテーマカスタマイザに接続し、それをキャッシュすることです。
うまくいけば、あなたはここから旅を続けることができます;-)