Snažím se získat název příspěvku post_type (příspěvek / stránka / portfolio) v panelu administrátora mimo smyčku.

Skoro jsem vyzkoušel všechna možná řešení, ale bez úspěchu:

//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) 

Komentáře

  • Jen se ujistím;) Pokud metoda 1 vrátí " bezobjektovou chybu ", obvykle to znamená, že může ' nenajdete příspěvek.
  • Metody 2 a 3 nebudou určitě fungovat. Pokud ' jste si jisti, že vaše ID příspěvku je 3208, pak by měla fungovat metoda 1, 4.
  • U metody 1 var_dump ($ content_post); exit; po $ content_post a zkontrolujte příspěvek get or ne. Pokud je výstup NULL, zkontrolujte výstupy ID příspěvku nebo ne.

Odpověď

Pokud máte pouze ID příspěvku a chcete pouze jeho název, pak použijte .

Syntaxe této funkce:

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

Takže kód, který vyřeší váš problém, vypadá takto:

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

A řešení vašich fragmentů kódu … První metoda by měla fungovat, pokud příspěvek existuje a je publikovaný nebo ho aktuální uživatel vidí.

Druhá metoda nemůže fungovat. Nedává to smysl.

Třetí a čtvrtá metoda také nemohou fungovat. Tyto funkce neberou post_ID jako parametr, takže jejich použití nedává velký smysl …

Odpověď

Jak již bylo uvedeno, „chyba bez objektu“ znamená, že get_post () nevrátil nic a že příspěvek neexistuje .

Pokud jste si jisti, že tento příspěvek skutečně existuje, je zde alternativní metoda převzatá z kodexu

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

Pokud se nic nevrátí, jste si jisti, že tento příspěvek byl publikován a není ve stavu konceptu?

Komentáře

  • Nebylo by efektivnější používat get_post_field?
  • @KrzysiekDr ó żdż get_post_field () používá get_post (), takže ' není rozdíl ve výkonu na načítající straně

Odpovědět

Příslušný název příspěvku jsem získal pomocí fol spouštěcí proces. first: I get information of post Id from dashboard [hover over the post and watch at the left bottom of the dashboard (you will get id information there)]

Second: inside wordpress loop I used:

<?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; ?> 

zde post-id-value je celočíselná hodnota, která je ID vašeho příspěvku. Hodnotu get_the_title () můžete uložit do funkce proměnné a echa do echo out the value in your desired location. Note * you need to have at least one post in your wordpress dashboard. Jinak můžete obdržet neočekávané výsledky (může dojít k selhání prohlížeče i počítače)

Odpovědět

pomocí této výchozí metody WP můžete získat název aktuální stránky a aktuálního příspěvku.

<?php echo get_the_title(); 

Komentáře

  • Autor již poukázal na to, že se pokusili použít get_the_title(). Také, protože to potřebují mimo smyčku, existuje žádný aktuální příspěvek .

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *