Wie überprüfe ich, ob eine Schnecke vorhanden ist?
8
Ich habe eine beliebige Zeichenfolge und möchte überprüfen, ob auf der Site ein Beitrag mit dieser Zeichenfolge vorhanden ist. Ich habe versucht, alle Schnecken aufzulisten, kann aber so etwas nicht finden. Vielen Dank
Die Frage ist geschützt, daher kann ich nicht antworten. Sie können verwenden if(is_page('slug-here')) { echo 'exists'; }.
Iago
Antworten:
7
Dies ist, was Sie suchen, getestet und ich verwende es auf meinen eigenen Websites:
function the_slug_exists($post_name){global $wpdb;if($wpdb->get_row("SELECT post_name FROM wp_posts WHERE post_name = '". $post_name ."'",'ARRAY_A')){returntrue;}else{returnfalse;}}
Sie können es dann folgendermaßen verwenden:
if(the_slug_exists('contact')){// do something}
Ersetzen contactSie ihn durch die Schnecke, auf die Sie testen möchten.
sollten wir $ wpdb_prepare verwenden, um das Escape der SQL-Anweisung vorzubereiten?
Insidepower
Gibt es eine Möglichkeit, den Code so zu ändern, dass er nur auf einen bestimmten benutzerdefinierten Beitragstyp abzielt?
Bruno Monteiro
Vielleicht if(the_slug_exists('contact') && post_type_exists('contact'))aber warum nicht nur verwendenif(post_type_exists('contact')) ...
Jonas Lundman
Die Verwendung von WP_Query () ist eine wartbarere Lösung als eine direkte DB-Abfrage. Zum Beispiel$query = new WP_Query(array('name' => 'my-new-slug')); if ($query->post_count == 0) {// I am unique!}
Alex Steinberg
5
Meinst du Post Slug? Sie können versuchen, diese von wp_unique_post_slug()WP verwendeten zu verwenden, um diese zu generieren. Wenn ich mich recht erinnere, wenn der Slug, den Sie verwenden möchten, nicht eindeutig ist, wird er mit angehängtem numerischen Index zurückgegeben.
Es tut mir leid, so spät zu antworten. Ja, Post Slug ist die Schnecke, die ich will. Leider habe ich nicht die post_id, die benötigt wird, um zu verwendenwp_unique_post_slug()
lulalala
Ich konnte sowieso nicht herausfinden, wie ich wp_unique_post_slug verwenden sollte, um dies zu tun. Es wird wirklich geprüft, ob eine Schnecke vorhanden ist, und es wird auch eine erstellt. Ich könnte mich irren oder etwas falsch interpretieren, aber bei meinen Tests würde nicht überprüft, ob bereits etwas vorhanden ist.
if(is_page('slug-here')) { echo 'exists'; }
.Antworten:
Dies ist, was Sie suchen, getestet und ich verwende es auf meinen eigenen Websites:
Sie können es dann folgendermaßen verwenden:
Ersetzen
contact
Sie ihn durch die Schnecke, auf die Sie testen möchten.quelle
if(the_slug_exists('contact') && post_type_exists('contact'))
aber warum nicht nur verwendenif(post_type_exists('contact')) ...
$query = new WP_Query(array('name' => 'my-new-slug')); if ($query->post_count == 0) {// I am unique!}
Meinst du Post Slug? Sie können versuchen, diese von
wp_unique_post_slug()
WP verwendeten zu verwenden, um diese zu generieren. Wenn ich mich recht erinnere, wenn der Slug, den Sie verwenden möchten, nicht eindeutig ist, wird er mit angehängtem numerischen Index zurückgegeben.quelle
wp_unique_post_slug()
Sie haben dann mehr als genug Informationen, um zu testen, ob ein Beitrag zurückgegeben wurde oder nicht. Ich hoffe, dies hilft.
quelle
Wie wäre es mit diesem einfacheren Ansatz?
Wenn für den angegebenen Slug und Post-Typ kein Beitrag vorhanden ist, wird
get_page_by_path()
null zurückgegeben.quelle
quelle