Estou tentando obter o título da postagem de um post_type (postagem / página / portfólio) no painel de administração fora de o loop.

Quase tentei todas as soluções possíveis, mas sem sucesso:

//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) 

Comentários

  • Apenas certificando-se;) Se o Método 1 retornar um " erro não objeto ", normalmente significa que ele pode ' não encontre a postagem.
  • Os métodos 2 e 3 não funcionarão definitivamente. Se você ' tiver certeza de que seu ID de postagem é 3208 então o método 1, 4 deve funcionar.
  • Para o método 1 var_dump ($ content_post); sair; após $ content_post e verificar post obter ou não. Se a saída for NULL, verifique as saídas de ID de postagem ou não.

Resposta

Se você tiver apenas ID de uma postagem e você deseja apenas o título dessa postagem, usando será a melhor maneira de fazer isso, eu acho.

A sintaxe desta função:

get_post_field( $field, $post_id, $context ); 

Então, o código, que resolverá seu problema, fica assim:

$title = get_post_field( "post_title", $POST_ID ); // most probably you want to display the title, so you can ignore last param 

E endereçando seus trechos de código … O primeiro método deve funcionar, se o a postagem existe e está publicada ou o usuário atual pode vê-la.

O segundo método não funciona. Não faz sentido.

O terceiro e o quarto métodos também não funcionam. Essas funções não usam post_ID como parâmetro, portanto, o uso deles não faz muito sentido …

Resposta

Como já foi apontado, o “erro não objeto” significa que get_post () não retornou nada e que a postagem não existe .

Se você tem certeza, porém, de que esta postagem existe, aqui está um método alternativo obtido do códice

<?php $post_7 = get_post(7, ARRAY_A); $title = $post_7["post_title"]; ?> 

Se, novamente, nada for retornado, você tem certeza de que esta postagem foi publicada e não está com o status Rascunho?

Comentários

  • Não seria mais eficiente usar get_post_field?
  • @KrzysiekDr ó żdż get_post_field () usa get_post (), portanto, não há ' s nenhuma diferença no desempenho do lado da busca

Resposta

Obtive o título relevante da postagem usando fol processo seguinte. primeiro: eu obtenho informações da id da postagem no painel [passe o mouse sobre a postagem e observe na parte inferior esquerda do painel (você obterá informações de id lá)]

Segundo: dentro do loop wordpress que usei:

<?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; ?> 

aqui post-id-value é o valor inteiro que é o id do seu post. Você pode armazenar o valor get_the_title () em uma variável e função de eco para ecoe o valor no local desejado. Observação * você precisa ter pelo menos uma postagem no painel do wordpress. Caso contrário, você pode obter resultados inesperados (o navegador e até o computador podem travar)

Resposta

usando estes métodos WP padrão, você pode obter o título da página atual e da postagem atual.

<?php echo get_the_title(); 

Comentários

  • O autor já apontou que eles tentaram usar get_the_title(). Além disso, como precisam fora do loop, há nenhuma postagem atual .

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *