it-swarm.com.de

Benutzerdefinierten Beitragstyp in den letzten Beiträgen anzeigen

Ich habe folgendes Problem:

Ich habe einen benutzerdefinierten Beitragstyp matratze erstellt und zurzeit gibt es neben den benutzerdefinierten Beiträgen keine weiteren Beiträge. Daher wird unter den letzten Beiträgen nichts angezeigt.

Der benutzerdefinierte Beitragstyp sieht folgendermaßen aus:

[Benutzerdefinierter Beitrag]

Meine letzten Beiträge werden nicht angezeigt:

[hauptseite]

Ich habe folgendes versucht:

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

Irgendwelche Vorschläge, was ich falsch mache?

Ich freue mich über Ihre Antworten!

2
Kare

So zeigen Sie benutzerdefinierte Beitragstypen im regulären Widget "Letzter Beitrag" für Seitenleisten an:
verwenden wir folgende Funktion, die bei uns einwandfrei funktioniert.
Wir verwenden unsere eigenen Funktionen und versuchen, den von Plugins häufig verursachten Overhead zu verhindern.

Hinweis: Erstellen Sie eine Sicherungskopie, bevor Sie diese Funktion in functions.php einfügen.

/**
 * 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;
}

Lesen Sie mehr in Codex

2
Charles

Wordpress bietet die Funktion wp_get_recent_posts() , um eine Reihe von kürzlich veröffentlichten Beiträgen aus beliebigen Beitragstypen abzurufen. Sie können Ihren benutzerdefinierten Beitragstyp als Argument übergeben, um Listen der letzten Beiträge abzurufen.

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

Wordpress Core Recent Posts Widget bietet keine Funktion zum Auflisten von Beiträgen vom benutzerdefinierten Beitragstyp. Wenn Sie Beiträge mit Widget auflisten möchten, können Sie Posts in Sidebar Plugin verwenden. Dieses Plugin ist sehr mächtig und bietet Ihnen viele Optionen, um Beiträge basierend auf vielen Kriterien anzuzeigen, einschließlich der letzten Beiträge von benutzerdefinierten Beitragstypen.

UPDATE:

Hier ist der Code, den Sie für Ihren speziellen Fall verwenden können:

Sie verwenden das Tab-Widget, um die letzten Beiträge anzuzeigen, die WP_Query verwenden. Sie können also pre_get_posts verwenden, um den Filtertyp für Beiträge festzulegen.

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