Igyekszem megszerezni a post_type (post / page / portfolio) bejegyzés címét az admin panelen kívül a ciklus.

Szinte kipróbáltam minden lehetséges megoldást, de sikertelenül:

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

megjegyzések

  • Csak megbizonyosodni róla;) Ha az 1. módszer " nem objektumhibát ad vissza ", ez általában azt jelenti, hogy képes ' nem találja meg a bejegyzést.
  • A 2. és a 3. módszer nem fog biztosan működni. Ha ' biztos benne, hogy a bejegyzés azonosítója 3208, akkor az 1., 4. módszernek működnie kell.
  • 1. módszer esetén var_dump ($ content_post); exit; $ content_post után és check post get vagy nem. Ha a kimenet NULL, akkor ellenőrizze, hogy a post ID kilép-e vagy sem.

Válasz

Ha csak azonosítója van bejegyzéshez, és csak a bejegyzés címét szeretné megadni, majd használja a lesz a legjobb módja ennek.

A függvény szintaxisa:

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

Tehát a probléma megoldására szolgáló kód a következőképpen néz ki:

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

És a kódrészletek címzése … Az első módszernek működnie kell, ha a bejegyzés létezik, és a közzétett vagy a jelenlegi felhasználó láthatja.

A második módszer nem működik. Semmi értelme.

A harmadik és a negyedik módszer nem működik. Ezek a függvények nem veszik a post_ID paramétert, ezért ilyen értelmű használatuknak nincs sok értelme …

Válasz

Mint már utaltunk rá, a “nem objektum hiba” azt jelenti, hogy a get_post () nem adott semmit, és hogy a bejegyzés nem létezik .

Ha biztos benne, hogy ez a bejegyzés valóban létezik, íme egy alternatív módszer, amelyet vettünk a kódexből

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

Ha ismét semmi nem kerül vissza, biztos benne, hogy ezt a bejegyzést közzétették, és nincsen Piszkozat állapotban?

Megjegyzések

  • Nem lenne hatékonyabb a get_post_field használata?
  • @KrzysiekDr ó żdż get_post_field () használ get_post (), tehát ' nincs különbség a teljesítményben a lekérési oldalon

Válasz

A bejegyzés releváns címét a fol mélyítési folyamat. először: Információt kapok az üzenet azonosítójáról az irányítópultról [vigye az egérmutatót a bejegyzés fölé, és nézze meg a műszerfal bal alsó részén (ott kapja meg az azonosító információkat)]

Másodszor: a wordpress ciklus belső részén használtam: p>

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

itt a post-id-érték az az egész szám, amely a bejegyzés id-je. A get_the_title () értéket egy változóban és echo függvényben tárolhatja visszhangozza ki az értéket a kívánt helyen. Megjegyzés * Legalább egy bejegyzéssel kell rendelkeznie a wordpress irányítópultján. Ellenkező esetben váratlan eredményeket kaphat (a böngésző még a számítógép is összeomolhat)

Válasz

ezen alapértelmezett WP módszerekkel megkaphatja az aktuális oldal és az aktuális bejegyzés címét.

<?php echo get_the_title(); 

Megjegyzések

  • A szerző már rámutatott, hogy megpróbálták a get_the_title() -t használni. Mivel a hurokon kívül is szükségük van rá, nincs aktuális bejegyzés .

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük