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 .