Încerc să obțin titlul postării unui post_type (postare / pagină / portofoliu) în panoul de administrare din afara bucla.
Aproape am încercat toate soluțiile posibile, dar fără succes:
//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)
Comentarii
- Doar asigurându-mă;) Dacă Metoda 1 returnează o " eroare non-obiect ", în mod normal înseamnă că poate ' nu găsiți postarea.
- Metodele 2 și 3 nu vor funcționa definitiv. Dacă ' sunteți sigur că ID-ul postării dvs. este
3208
atunci metoda 1, 4. ar trebui să funcționeze. - Pentru metoda 1 var_dump ($ content_post); ieșiți; după $ content_post și verificați post get sau nu. Dacă ieșirea este NULL, verificați ID-ul postului sau nu.
Răspuns
Dacă aveți doar ID dintr-o postare și doriți doar titlul postării respective, apoi utilizând va fi cel mai bun mod de a face acest lucru, cred.
Sintaxa acestei funcții:
get_post_field( $field, $post_id, $context );
Deci, codul, care vă va rezolva problema, arată astfel:
$title = get_post_field( "post_title", $POST_ID ); // most probably you want to display the title, so you can ignore last param
Și adresarea fragmentelor de cod … Prima metodă ar trebui să funcționeze, dacă postarea există și este publicată sau utilizatorul actual o poate vedea.
A doua metodă nu poate funcționa. Nu are sens.
A treia și a patra metodă nu pot funcționa și ele. Aceste funcții nu iau post_ID ca param, așa că o astfel de utilizare a acestora nu are mult sens …
Răspuns
După cum sa menționat deja, „eroarea non-obiect” înseamnă că get_post () nu a returnat nimic și că postarea nu există .
Dacă sunteți sigur, însă, că acest post există, iată o metodă alternativă luată din codex
<?php $post_7 = get_post(7, ARRAY_A); $title = $post_7["post_title"]; ?>
Dacă, din nou, nu se returnează nimic, sunteți sigur că această postare a fost publicată și nu se află în starea Draft?
Comentarii
- Nu ar fi mai eficient să folosiți get_post_field?
- @KrzysiekDr ó żdż get_post_field () uses get_post (), deci nu există ' nicio diferență de performanță pe partea de preluare
Răspuns
Am obținut titlul relevant al postării folosind fol proces de coborâre. mai întâi: primesc informații despre Id-ul postului de pe tabloul de bord [treceți cu mouse-ul peste post și urmăriți în partea din stânga jos a tabloului de bord (veți obține informații despre id acolo)]
În al doilea rând: în interiorul buclei de wordpress am folosit:
<?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; ?>
aici post-id-value este valoarea întreagă care este ID-ul postării dvs. Puteți stoca valoarea get_the_title () într-o variabilă și funcția de ecou pentru evocați valoarea în locația dorită. Notă * trebuie să aveți cel puțin o postare în tabloul de bord al wordpress-ului. În caz contrar, puteți obține rezultate neașteptate (browserul chiar și computerul se poate bloca)
Răspunde / h2>
folosind aceste metode WP implicite puteți obține titlul paginii curente și al postării curente.
<?php echo get_the_title();
Comentarii
- Autorul a subliniat deja că au încercat să utilizeze
get_the_title()
. De asemenea, deoarece au nevoie de el în afara buclei, există nu există postare actuală .
folosind aceste metode WP implicite puteți obține titlul paginii curente și al postării curente.
<?php echo get_the_title();
Comentarii
- Autorul a subliniat deja că au încercat să utilizeze
get_the_title()
. De asemenea, deoarece au nevoie de el în afara buclei, există nu există postare actuală .