Schließen Sie den benutzerdefinierten Post-Typ vom Suchkonflikt mit get_posts aus

Ich möchte meinen benutzerdefinierten Post-Typ aus den Suchergebnissen ausblenden. Also folgte ich dem Codex und benutzte:

exclude_from_search => 'true' beim Registrieren meines benutzerdefinierten Post-Typs.

Dadurch wird der benutzerdefinierte Post-Typ ausgeblendet und er erscheint nicht mehr in den Suchergebnissen.

Aber jetzt kann ich keine Posts mit get_posts laden, aber sie erscheinen gut mit WP_Query . Ich frage mich, warum es passiert.

Solutions Collecting From Web of "Schließen Sie den benutzerdefinierten Post-Typ vom Suchkonflikt mit get_posts aus"

get_posts() verwendet WP_Query , also liefern Sie wahrscheinlich falsche Argumente, es ist erwähnenswert, dass die function einige Standardargumente hat .

Dies sollte alle Beiträge des CPT myCPT :

 $args = array( 'posts_per_page' => -1, 'post_type' => 'myCPT', 'post_status' => 'any', ); $posts_array = get_posts( $args ); ?> 

Kannst du diesen Code ausprobieren?

 function excludePages($query) { if ($query->is_search) { $query->set('post_type', 'post'); } return $query; } add_filter('pre_get_posts','excludePages');