Sto cercando di ottenere il titolo del post di un post_type (post / pagina / portfolio) nel pannello di amministrazione al di fuori di il ciclo.
Ho quasi provato tutte le soluzioni possibili, ma senza successo:
//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)
Commenti
- Sto solo assicurandomi;) Se il Metodo 1 restituisce un " errore non oggetto ", normalmente significa che può ' t trovare il post.
- I metodi 2 e 3 non funzioneranno definitivamente. Se ' sei sicuro che lID del tuo post è
3208
quindi il metodo 1, 4 dovrebbe funzionare. - Per il metodo 1 var_dump ($ content_post); esci; dopo $ content_post e controlla il post ottieni o non. Se loutput è NULL, controlla se lID del post esce o meno.
Risposta
Se hai solo ID di un post e desideri solo il titolo del post, quindi utilizza sarà il modo migliore per farlo, immagino.
La sintassi di questa funzione:
get_post_field( $field, $post_id, $context );
Quindi il codice che risolverà il tuo problema ha il seguente aspetto:
$title = get_post_field( "post_title", $POST_ID ); // most probably you want to display the title, so you can ignore last param
E indirizzando i tuoi frammenti di codice … Il primo metodo dovrebbe funzionare, se il il post esiste ed è pubblicato o lutente corrente può vederlo.
Il secondo metodo non può funzionare. Non ha senso.
Anche il terzo e il quarto metodo non possono funzionare. Queste funzioni non accettano post_ID come parametro, quindi tale uso non ha molto senso …
Risposta
Come già sottolineato, l “errore non oggetto” significa che get_post () non ha restituito nulla e che il messaggio non esiste .
Se sei certo, però, che questo post esista, ecco un metodo alternativo tratto dal codice
<?php $post_7 = get_post(7, ARRAY_A); $title = $post_7["post_title"]; ?>
Se, ancora una volta, non viene restituito nulla, sei certo che questo post sia stato pubblicato e non sia in stato di Bozza?
Commenti
- Non sarebbe più efficiente usare get_post_field?
- @KrzysiekDr ó żdż get_post_field () utilizza get_post (), quindi ' non ci sono differenze di prestazioni sul lato del caricamento
Risposta
Ho ottenuto il titolo pertinente del post utilizzando fol processo di abbassamento. primo: ottengo le informazioni sullID del post dalla dashboard [passa il mouse sul post e guarda nella parte inferiore sinistra della dashboard (riceverai le informazioni sullID lì)]
Secondo: allinterno del ciclo di wordpress che ho usato:
<?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; ?>
qui post-id-value è il valore intero che è lid del tuo articolo. Puoi memorizzare il valore get_the_title () in una variabile e la funzione echo per echeggia il valore nella posizione desiderata. Nota * devi avere almeno un post nella dashboard di wordpress. In caso contrario potresti ottenere risultati imprevisti (il browser e anche il computer potrebbe bloccarsi)
Risposta
utilizzando questi metodi WP predefiniti puoi ottenere il titolo della pagina corrente e del post corrente.
<?php echo get_the_title();
Commenti
- Lautore ha già sottolineato di aver provato a utilizzare
get_the_title()
. Inoltre, poiché ne hanno bisogno al di fuori del ciclo, cè nessun post corrente .