Yritän saada post_type (viesti / sivu / salkku) -nimikkeen hallintapaneelista ulkopuolelta silmukka.
Kokein melkein kaikkia mahdollisia ratkaisuja, mutta epäonnistunut:
//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)
kommentit
- Varmista vain;) Jos menetelmä 1 palauttaa " ei-objektivirheen ", se tarkoittaa yleensä, että hän voi ' ei löydä viestiä.
- Menetelmät 2 ja 3 eivät toimi ehdottomasti. Jos ' olet varma, että postitunnuksesi on
3208
, sitten menetelmän 1, 4 pitäisi toimia. - Menetelmässä 1 var_dump ($ content_post); exit; $ content_post ja check post get tai ei. Jos tulos on NULL, tarkista, onko postitunnus poistunut.
Vastaa
Jos sinulla on vain tunnus ja haluat vain viestin otsikon, käytä sitten on luultavasti paras tapa tehdä tämä.
Tämän toiminnon syntaksi:
get_post_field( $field, $post_id, $context );
Joten koodi, joka ratkaisee ongelmasi, näyttää tältä:
$title = get_post_field( "post_title", $POST_ID ); // most probably you want to display the title, so you can ignore last param
Ja osoitat koodinpätkäsi … Ensimmäisen menetelmän pitäisi toimia, jos viesti on olemassa ja se on julkaistu tai nykyinen käyttäjä voi nähdä sen.
Toinen menetelmä ei voi toimia. Sillä ei ole mitään järkeä.
Kolmas ja neljäs menetelmä eivät voi toimia myöskään. Nämä toiminnot eivät ota post_ID: tä parametriksi, joten niiden käytöllä ei ole mitään järkeä …
vastaus
Kuten jo todettiin, ”ei-objektivirhe” tarkoittaa get_post () -palautetta eikä viestiä ole olemassa .
Jos olet kuitenkin varma, että tämä viesti on olemassa, tässä on vaihtoehtoinen menetelmä, joka on otettu koodeksista
<?php $post_7 = get_post(7, ARRAY_A); $title = $post_7["post_title"]; ?>
Jos taas mitään ei palauteta, oletko varma, että tämä viesti on julkaistu, eikä se ole luonnostilassa?
Kommentit
- Eikö olisikaan tehokkaampaa käyttää get_post_field?
- @KrzysiekDr ó żdż get_post_field () käyttää get_post (), joten ' ei ole eroa suorituskyvyssä noutopuolella
vastaus
Sain viestin asiaankuuluvan otsikon käyttämällä fol laskuprosessi. ensimmäinen: Saan postitunnuksen tiedot kojelaudalta [vie hiiri viestin päälle ja katsele kojelaudan vasemmassa alareunassa (saat id-tietoja sieltä)]
Toinen: käytin WordPress-silmukan sisällä:
<?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; ?>
tässä post-id-arvo on kokonaisluku, joka on postisi tunnus. Voit tallentaa get_the_title () -arvon muuttujaan ja echo-funktioon kaiku arvo haluamaasi sijaintiin. Huomaa * WordPress-hallintapaneelissa on oltava vähintään yksi viesti. Muuten saatat saada odottamattomia tuloksia (selain jopa tietokone saattaa kaatua)
Vastaa
tällä WP-oletusmenetelmällä saat nykyisen sivun ja nykyisen viestin otsikon.
<?php echo get_the_title();
Kommentit
- Kirjoittaja huomautti jo, että he yrittivät käyttää
get_the_title()
. Koska he tarvitsevat sitä myös silmukan ulkopuolella, on ei nykyistä viestiä .