Gibt es eine genau entgegengesetzte Funktion zu dieser:
get_the_title(ID)
Ich weiß, dass es gibt:
get_the_id()
Aber es scheint keine Argumente zu akzeptieren.
Also im Grunde suche ich 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 fehlt mir etwas?
Ich bin nicht sicher, wie ich es über den Titel bekomme, aber Sie können es über den Slug bekommen (was meiner Erfahrung nach oft nützlicher ist), indem Sie dies verwenden:
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.
Glück!
get_page_by_title( $title, [$output = 'object'], [$post_type = 'page'] )
existiert für genau diesen 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 Funktion, um dies zu tun. Verwenden Sie: get_page_by_title ();
Siehe die Referenz hier http://codex.wordpress.org/Function_Reference/get_page_by_title