Jag försöker få inläggstiteln på en posttyp (inlägg / sida / portfölj) i adminpanelen utanför loop.
Jag försökte nästan alla möjliga lösningar, men utan framgång:
//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)
Kommentarer
- Bara se till;) Om metod 1 returnerar ett " fel utan objekt " betyder det normalt att han kan ' t hitta inlägget.
- Metod 2 och 3 fungerar inte definitivt. Om du ' är säker på att ditt inläggs-ID är
3208
då ska metod 1, 4 fungera. - För metod 1 var_dump ($ content_post); avsluta; efter $ content_post och check post get or inte. Om utdata är NULL, kontrollera post-ID avslutas eller inte.
Svar
Om du bara har ID på ett inlägg och du vill bara ha titeln på det inlägget och sedan använda är det bästa sättet att göra, antar jag.
Syntaxen för den här funktionen:
get_post_field( $field, $post_id, $context );
Så kod, som löser ditt problem ser ut så här:
$title = get_post_field( "post_title", $POST_ID ); // most probably you want to display the title, so you can ignore last param
Och adressering av dina kodavsnitt … Den första metoden borde fungera, om inlägget finns och det är publicerat eller nuvarande användare kan se det.
Den andra metoden kan inte fungera. Det är ingen mening.
Tredje och fjärde metoderna kan inte fungera också. Dessa funktioner tar inte post_ID som param, så sådan användning av dem är inte mycket meningsfull …
Svar
Som redan påpekats betyder ”icke-objektfelet” get_post () returnerade ingenting, och att inlägget inte finns .
Om du dock är säker på att det här inlägget finns finns här en alternativ metod som tagits från codex
<?php $post_7 = get_post(7, ARRAY_A); $title = $post_7["post_title"]; ?>
Om ingenting återlämnas, är du säker på att det här inlägget har publicerats och inte har utkast?
Kommentarer
- Skulle det inte vara mer effektivt att använda get_post_field?
- @KrzysiekDr ó żdż get_post_field () använder get_post (), så det finns ' ingen skillnad i prestanda på hämtningssidan
Svar
Jag fick den relevanta titeln på inlägget med fol sänkningsprocess. först: Jag får information om inläggs-id från instrumentpanelen [sväva över inlägget och titta längst ner till vänster på instrumentpanelen (du får id-information där)]
Andra: inuti wordpress-slingan använde jag:
<?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; ?>
här är post-id-värde det heltalsvärde som är ditt inläggs id. Du kan lagra get_the_title () -värdet i en variabel och ekofunktion för att echo ut värdet på din önskade plats. Obs * du måste ha minst ett inlägg i din wordpress-instrumentpanel. Annars kan du få oväntade resultat (webbläsare till och med datorn kan krascha)
Svar
med de här standard-WP-metoderna kan du få titeln på aktuell sida och nuvarande inlägg.
<?php echo get_the_title();
Kommentarer
- Författaren påpekade redan att de försökte använda
get_the_title()
. Eftersom de behöver det utanför slingan finns det inget aktuellt inlägg .