Jeg prøver at få posttitlen på en posttype (post / side / portfolio) i adminpanelet uden for loop.
Jeg prøvede næsten alle mulige løsninger, men uden 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)
Kommentarer
- Bare sørg for;) Hvis metode 1 returnerer en " ikke-objektfejl ", betyder det normalt, at han kan ' Find ikke indlægget.
- Metode 2 og 3 fungerer ikke helt sikkert. Hvis du ' er sikker på at dit post-id er
3208
, så skal metode 1, 4 fungere. - For metode 1 var_dump ($ content_post); afslut; efter $ content_post og check post get or ikke. Hvis output er NULL, så tjek post-ID ud eller ej.
Svar
Hvis du kun har ID af et indlæg, og du vil kun have titlen på dette indlæg og derefter bruge vil jeg være den bedste måde at gøre dette på.
Syntaksen for denne funktion:
get_post_field( $field, $post_id, $context );
Så kode, der løser dit problem, ser sådan ud:
$title = get_post_field( "post_title", $POST_ID ); // most probably you want to display the title, so you can ignore last param
Og adressering af dine kodestykker … Første metode skulle fungere, hvis Der findes et indlæg, og det er offentliggjort, eller den aktuelle bruger kan se det.
Anden metode kan ikke fungere. Det giver ingen mening.
Tredje og fjerde metode kan ikke fungere også. Disse funktioner tager ikke post_ID som param, så sådan brug af dem giver ikke meget mening …
Svar
Som allerede påpeget betyder “ikke-objektfejl” get_post () returnerede intet, og at posten ikke findes .
Hvis du dog er sikker på, at dette indlæg eksisterer, er her en alternativ metode taget fra codex
<?php $post_7 = get_post(7, ARRAY_A); $title = $post_7["post_title"]; ?>
Hvis der igen ikke returneres noget, er du sikker på at dette indlæg er blevet offentliggjort og ikke er i kladdestatus?
Kommentarer
- Ville det ikke være mere effektivt at bruge get_post_field?
- @KrzysiekDr ó żdż get_post_field () bruger get_post (), så der er ' ingen forskel i ydeevne på hentningssiden
Svar
Jeg fik den relevante titel på indlægget ved hjælp af fol sænkningsproces. først: Jeg får oplysninger om indlægs-id fra instrumentbrættet [svæver over indlægget og se nederst til venstre på instrumentbrættet (du får id-oplysninger der)]
Andet: inde i wordpress-sløjfe brugte jeg:
<?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; ?>
her er post-id-værdi det heltalsværdi, der er dit indlægs id. Du kan gemme get_the_title () -værdien i en variabel- og ekkofunktion til ekko værdien på din ønskede placering. Bemærk * du skal have mindst et indlæg i dit wordpress-dashboard. Ellers kan du få uventede resultater (browser, selv computeren kan gå ned)
Svar
ved hjælp af denne standard WP-metode kan du få titlen på den aktuelle side og det aktuelle indlæg.
<?php echo get_the_title();
Kommentarer
- Forfatteren påpegede allerede, at de forsøgte at bruge
get_the_title()
. Da de har brug for det uden for sløjfen, er der også intet aktuelt indlæg .