abrufen Ich versuche, den Post-Titel eines Post-Typs (Post / Seite / Portfolio) im Admin-Bereich außerhalb von zu erhalten die Schleife.

Ich habe fast alle möglichen Lösungen ausprobiert, aber ohne Erfolg:

//method 1 $content_post = get_post(3208); $_menu_item_title = $content_post->post_title; //(Trying to get property of non-object error) //method 2 $obj = get_post_type_object($_menu_item_type); $content_post = get_post(3208); //(Trying to get property of non-object error) $_menu_item_title = $obj->$content_post->post_title; //method 3 $_menu_item_title = the_title(3208); //(no error but nothing is store) //method 4 $_menu_item_title = get_the_title(3208); //(no error but nothing is store) 

Kommentare

  • Nur um sicherzugehen;) Wenn Methode 1 einen " Nicht-Objektfehler " zurückgibt, bedeutet dies normalerweise, dass er dies kann ' findet den Beitrag nicht.
  • Methode 2 und 3 funktionieren definitiv nicht. Wenn Sie ' sicher sind, dass Ihre Post-ID lautet 3208, dann sollte Methode 1, 4 funktionieren.
  • Für Methode 1 var_dump ($ content_post); exit; nach $ content_post und überprüfen Sie post get oder nicht. Wenn die Ausgabe NULL ist, überprüfen Sie, ob die Post-ID beendet ist oder nicht.

Antwort

Wenn Sie nur eine ID haben eines Beitrags und Sie möchten nur den Titel dieses Beitrags, dann verwenden Sie ist wahrscheinlich der beste Weg, dies zu tun.

Die Syntax dieser Funktion:

get_post_field( $field, $post_id, $context ); 

Code, der Ihr Problem löst, sieht also so aus:

$title = get_post_field( "post_title", $POST_ID ); // most probably you want to display the title, so you can ignore last param 

Und Adressieren Ihrer Codefragmente … Die erste Methode sollte funktionieren, wenn die Der Beitrag ist vorhanden und wird veröffentlicht oder der aktuelle Benutzer kann ihn sehen.

Die zweite Methode funktioniert nicht. Es macht keinen Sinn.

Die dritte und vierte Methode können auch nicht funktionieren. Diese Funktionen verwenden post_ID nicht als Parameter, daher macht eine solche Verwendung nicht viel Sinn …

Antwort

Wie bereits erwähnt, bedeutet der „Nicht-Objektfehler“, dass get_post () nichts zurückgegeben hat und der Beitrag nicht existiert .

Wenn Sie jedoch sicher sind, dass dieser Beitrag vorhanden ist, finden Sie hier eine alternative Methode aus dem Codex

<?php $post_7 = get_post(7, ARRAY_A); $title = $post_7["post_title"]; ?> 

Wenn erneut nichts zurückgegeben wird, sind Sie sicher, dass dieser Beitrag veröffentlicht wurde und sich nicht im Entwurfsstatus befindet?

Kommentare

  • Wäre es nicht effizienter, get_post_field zu verwenden?
  • @KrzysiekDr ó żdż get_post_field () verwendet get_post (), also gibt es ' keinen Leistungsunterschied auf der Abrufseite

Antwort

Ich habe den entsprechenden Titel des Beitrags mit fol erhalten Prozess. Erstens: Ich erhalte Informationen zur Post-ID vom Dashboard [Bewegen Sie den Mauszeiger über den Post und sehen Sie links unten im Dashboard nach (dort erhalten Sie ID-Informationen)]

Zweitens: Innerhalb der von mir verwendeten WordPress-Schleife:

<?php if(have_posts()): while(have_posts()) : $var_name= get_the_ID(); ?> <?php if($var_name == post-id-value): get_the_title(); ?> <?php endwhile; endif; ?> 

hier ist der Post-ID-Wert der ganzzahlige Wert, der die ID Ihres Posts ist. Sie können den Wert get_the_title () in einer Variablen- und Echo-Funktion speichern Geben Sie den Wert an der gewünschten Stelle wieder. Hinweis * Sie müssen mindestens einen Beitrag in Ihrem WordPress-Dashboard haben. Andernfalls erhalten Sie möglicherweise unerwartete Ergebnisse (der Browser kann sogar vom Computer abstürzen).

Antwort

Mit diesen Standard-WP-Methoden können Sie den Titel der aktuellen Seite und des aktuellen Beitrags abrufen.

<?php echo get_the_title(); 

Kommentare

  • Der Autor hat bereits darauf hingewiesen, dass er versucht hat, get_the_title() zu verwenden. Da sie es auch außerhalb der Schleife benötigen, gibt es Kein aktueller Beitrag .

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.