Wie bekomme ich die ID der Seite, wenn ich nur den Titel kenne?

Gibt es eine genau entgegengesetzte function zu diesem:

get_the_title(ID) 

Ich weiß, da ist:

 get_the_id() 

Aber es scheint keine Argumente zu akzeptieren.

Also, im Grunde bin ich auf der Suche nach etwas wie:

 $title = 'Something'; get_the_id($title); 

Ich kenne diese Lösung bereits:

  global $wpdb; $post_name = get_query_var('name'); $post_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_name = $post_name"); 

Aber vielleicht gibt es etwas, das ich vermisse?

Solutions Collecting From Web of "Wie bekomme ich die ID der Seite, wenn ich nur den Titel kenne?"

Ich bin mir nicht sicher, wie man es über den Titel bekommt, aber man kann es über den Slug bekommen (was meiner Erfahrung nach oft nützlicher ist):

http://erikt.tumblr.com/post/278953342/get-a-wordpress-page-id-with-the-slug

Ändern Sie einfach “$ page” in “$ post”, wenn Sie Slugs für Posts anstelle von Seiten zurückgeben möchten.

G’luck!

get_page_by_title( $title, [$output = 'object'], [$post_type = 'page'] ) existiert zu diesem Zweck. Ich verwende es jetzt in einem meiner Projekte, um alle Anhänge für eine bestimmte Seite in meiner Seitenleiste anzuzeigen:

 if ( $oPage = get_page_by_title('Proudly Supporting...') ) { $children = get_posts(array( 'post_type' => 'attachment', 'post_mime_type' => 'image', 'numberposts' => 3, 'post_status' => null, 'post_parent' => $oPage->ID, /* Using the Page ID */ 'orderby' => 'rand', )); if ( $children ) { /* Do something with the children */ } } 

Ich hatte das gleiche Problem. Ich habe den nächsten Code benutzt:

 $my_title = 'My title'; global $wpdb; $mypost = $wpdb->get_row( "SELECT * FROM wp_posts WHERE post_title = '" . $my_title . "' " ); echo $mypost->ID; 

Es gibt eine eingebaute function, um es zu tun. Verwenden Sie: get_page_by_title ();

Siehe die Referenz hier http://codex.wordpress.org/Function_Reference/get_page_by_title