O plugin SEO SEO do Yoast permite que os usuários adicionem títulos e meta descrições de SEO às páginas de arquivo de termos de taxonomia. Estes são então utilizados no cabeçalho do documento.
Estou tentando exibir o título SEO dos termos de taxonomia como um H1 no meu modelo de arquivo de taxonomia.
Para fazer isso em uma postagem, o tipo ou a página da postagem é fácil:
echo get_post_meta($post->ID, '_yoast_wpseo_title', true);
Nos modelos de arquivo, isso não funciona.
Alguém sabe como fazer isso funcionar?
Exemplo de captura de tela
Este é o título de um termo de tag específico. Estou tentando exibir esse título - mas depois para um termo de taxonomia personalizado - nos meus modelos de arquivo.
Código final
Foi isso que acabei usando no meu archive.php
modelo. Funciona se você estiver usando uma taxonomia customizada. Para tags ou categorias, dê uma olhada na resposta de Mike Madern abaixo.
<h1 class="archive-title">
<?php
if ( is_tax() ) :
$taxonomy = get_queried_object()->taxonomy;
$term_id = get_queried_object()->term_id;
$meta = get_option( 'wpseo_taxonomy_meta' );
$title = $meta[$taxonomy][$term_id]['wpseo_title'];
//printf( '<pre>%s</pre>', print_r( get_option( 'wpseo_taxonomy_meta' ), 1 ) );
if ( isset($meta) && !empty($title) ) :
echo apply_filters( 'the_title', $title );
else :
single_term_title();
endif;
endif;
?>
</h1>
fonte
$tag_id
.get_queried_object()->term_id
, em vez dissoget_query_var()
, como o primeiro retorna o id, o último retorna a lesma, fazendo o código emitir avisos de "índice indefinido". Além disso, ter o cuidado de verificar se existe é definido nada$meta['post_tag|category']
, como você vai ter avisos índice indefinidas também. (WP 4.2.2, btw)Na página de arquivo no loop post, adicione a seguinte linha de código para fazê-lo funcionar
Diga-me se está funcionando para você ou vou fornecer outra solução.
fonte
Obtendo a palavra - chave foco para categorias e tags
Para obter a palavra-chave focus de uma Categoria ou Tag programaticamente, você pode usar um destes dois métodos:
Essa é basicamente a abordagem usada por Mike no final de seu post.
ou
Costumo preferir a segunda abordagem, pois dessa forma não preciso buscar nem me preocupar em obter a opção meta sozinho.
No seu caso
functions.php
, você pode testarif class_exists( 'WPSEO_Taxonomy_Meta' )
e, em seguida, talvez agrupar a função Yoast em uma função própria, para ser seguro, caso você pare de usar o Yoast SEO posteriormente.Alguma experiência
Conforme mencionado na pergunta original, algo como
get_post_meta( $tag->term_id, '_yoast_wpseo_focuskw', true);
não funcionará para categorias e páginas (não retornará nada).Então porque é isso?
Isso ocorre porque, para categorias e tags, a palavra-chave focus é salva em outro lugar no banco de dados. Em vez de ser salvo dentro da
wp_postmeta
tabela, como de costume, ele é enterrado profundamente dentro dawp_options
tabela, como um objeto JSON.Os métodos acima permitem acessar esses valores.
Por fim, se você é como eu e não consegue se lembrar do nome das taxonomias (por exemplo: não é óbvio por que as tags usam taxonomia
post_tag
e não apenastag
, verifique os URLs ao editar uma categoria ou uma tag: ela será exibida…taxonomy=category…
ou o gosto.fonte
Responder Obtendo a palavra-chave focus para categorias e tags
// funciona obrigado
// com resto api
get / wp-json / wp / v2 / categories? slug =
slug_name
plugin.in use o método 1
mudar de linha
$meta['post_tag'][$tag->term_id]['wpseo_focuskw'];
$meta['category'][$param_post_id]['wpseo_focuskw'];
fonte