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 .

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *