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 .