Wie erhalte ich eine Post- (Seite oder CPT) ID von einem Titel oder einer Slug?

Ich habe den Codex abgesucht, get_page_by_title () nicht zum Laufen gebracht und bin ziemlich überrascht, dass es für diese Aufgabe keine Standard-WP-function zu geben scheint.

Ich muss die ID eines gegebenen post / cpt oder einer Seite mit dem Slug des post / page title bekommen. Idealerweise suche ich folgendes:

get_post_ID_by_title('My post title', 'customposttype');

Was soll ich tun?

Solutions Collecting From Web of "Wie erhalte ich eine Post- (Seite oder CPT) ID von einem Titel oder einer Slug?"

Sie können diese function verwenden, die von Google springt “Post nach Titel abrufen”

 /** * Retrieve a post given its title. * * @uses $wpdb * * @param string $post_title Page title * @param string $post_type post type ('post','page','any custom type') * @param string $output Optional. Output type. OBJECT, ARRAY_N, or ARRAY_A. * @return mixed */ function get_post_by_title($page_title, $post_type ='post' , $output = OBJECT) { global $wpdb; $post = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_title = %s AND post_type= %s", $page_title, $post_type)); if ( $post ) return get_post($post, $output); return null; } 

Ihnen fehlt ein functionsparameter. Werfen Sie eine Null für den zweiten optionalen Parameter $ output und diese function sollte für Sie arbeiten.

 get_post_ID_by_title('My post title', null, 'customposttype'); 

Ich bin gerade auf das gleiche Problem gestoßen und habe die Null hinzugefügt, um es für mich zu reparieren.

Ich scheue mich vor direkten DB-Anfragen. Stattdessen verwende ich das WP_Query Objekt, um Dinge für mich zu analysieren.

Dies ist im Grunde eine function, die ich in einem meiner Themen verwende, um einen Beitrag basierend auf einem bestimmten Slug zu erhalten:

 function get_post_id( $slug, $post_type ) { $query = new WP_Query( array( 'name' => $slug, 'post_type' => $post_type ) ); $query->the_post(); return get_the_ID(); } 

Dadurch wird eine Abfrage erstellt, die die WP-API verwendet, um einen Post eines bestimmten Typs mit einem bestimmten Slug abzurufen, die regulären Loop-functionen für das Ergebnis auszuführen und die ID des Posts zurückzugeben. Sie können es auch verwenden, um den gesamten Beitrag zurück zu geben, indem Sie die function ein wenig ändern, aber das liegt bei Ihnen.

Dies ist jetzt ein paar Jahre alt, aber es erscheint immer noch bei der Suche nach diesem auf Google. Also, hier ist ein einfacher Weg, es zu tun:

 $page = get_page_by_title( 'my post title' ); 

oder

 $page = get_post_ID_by_title('my post title', OBJECT, 'customposttype'); 

Dann benutze einfach das $ page-Objekt, um die ID zu erhalten:

 $page->ID