it-swarm.com.de

Wie füge ich dem vorgestellten Inhalt in einem vierundzwanzig-Punkte-Thema einen benutzerdefinierten Beitragstyp hinzu?

Dieser wpmudev-Beitrag fasst mein Gefühl genau um die vierundzwanzig zusammen:

Der vorgestellte Inhalt unterstützt keine benutzerdefinierten Beitragstypen. Es werden nur Beiträge ausgewählt, auch wenn der benutzerdefinierte Beitragstyp die Taxonomie "Tags" unterstützt

Ich habe zwei CPT hinzugefügt, die eine benutzerdefinierte Taxonomie aufweisen. Ich habe versucht, sie ohne Glück zu markieren, habe mir inc/featured-content.php, js/slider.js und functions.php angesehen.

Wie kann ich diese Beitragstypen hinzufügen, damit sie auf der Startseite im Schieberegler für empfohlene Inhalte angezeigt werden?

verwandte QS auf WPSE

2
Danger14

Der twentyfourteen_get_featured_posts Filter:

Um herauszufinden, wie der twentyfourteen_get_featured_posts-Filter im TwentyFourteen -Thema verwendet wird, musste man ein bisschen graben ;-)


Der vorgestellte Inhalt wird abgerufen mit:

$featured_posts = twentyfourteen_get_featured_posts();

aber diese Funktion ist nur diese eine Zeile:

return apply_filters( 'twentyfourteen_get_featured_posts', array() );

wo ist das Fleisch?


Wir finden es in der Featured_Content Klasse, beginnend mit dieser Zeile :

add_filter( $filter, array( __CLASS__, 'get_featured_posts' ) );

woher kommt $filter:

$filter = $theme_support[0]['featured_content_filter'];

woher:

$theme_support = get_theme_support( 'featured-content' );

In functions.php finden wir:

// Add support for featured content.
add_theme_support( 'featured-content', array(
    'featured_content_filter' => 'twentyfourteen_get_featured_posts',
    'max_posts' => 6,
) );

so sehen wir endlich, dass:

$filter === 'twentyfourteen_get_featured_posts';

Beispiel:

Um die standardmäßigen gekennzeichneten Inhaltsbeiträge zu überschreiben, können Sie Folgendes versuchen:

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 );

Der nächste Schritt wäre, es mit dem Theme Customizer zu verbinden und es vielleicht zwischenzuspeichern.

Hoffentlich kannst du die Reise von hier aus fortsetzen ;-)

2
birgire