El complemento SEO de WordPress de Yoast permite a los usuarios agregar títulos SEO y meta descripciones a las páginas de archivo de términos de taxonomía. Estos se utilizan en el encabezado del documento.
Estoy tratando de mostrar el título SEO de los términos de taxonomía como un H1 en mi plantilla de archivo de taxonomía.
Hacer esto en una publicación, tipo de publicación o página es fácil:
echo get_post_meta($post->ID, '_yoast_wpseo_title', true);
En las plantillas de archivo esto no funciona.
¿Alguien sabe cómo hacer que esto funcione?
Ejemplo de captura de pantalla
Este es el título de un término de etiqueta específico. Estoy tratando de mostrar este título, pero para un término de taxonomía personalizado, en mis plantillas de archivo.
Código final
Esto es lo que terminé usando en mi archive.php
plantilla. Funciona si está utilizando una taxonomía personalizada. Para ver etiquetas o categorías, eche un vistazo a la respuesta de Mike Madern a continuación.
<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>
fuente
$tag_id
.get_queried_object()->term_id
, en lugar de esoget_query_var()
, ya que el primero devuelve la identificación, el segundo devuelve la babosa, haciendo que el código arroje avisos de "índice indefinido". Además, tenga cuidado para comprobar si hay es conjunto nada$meta['post_tag|category']
, como te Avisos Índice indefinidos también. (WP 4.2.2, por cierto)En la página de archivo en el bucle posterior, agregue la siguiente línea de código para que funcione
Dígame si está funcionando para usted o le proporcionaré otra solución.
fuente
Obtener la palabra clave de enfoque para categorías y etiquetas
Para obtener la palabra clave de enfoque de una Categoría o Etiqueta mediante programación, puede usar cualquiera de estos dos métodos:
Este es básicamente el enfoque utilizado por Mike al final de su publicación.
o
Tiendo a preferir el segundo enfoque porque de esta manera no tengo que buscar ni preocuparme por obtener la meta opción yo mismo.
En su
functions.php
, es posible que desee probarif class_exists( 'WPSEO_Taxonomy_Meta' )
y luego envolver la función Yoast en una función propia, para estar seguro en caso de que alguna vez deje de usar Yoast SEO en el futuro.Algunos antecedentes
Como se mencionó en la pregunta original, algo así
get_post_meta( $tag->term_id, '_yoast_wpseo_focuskw', true);
no funcionará para categorías y páginas (no devolverá nada).Entonces, ¿por qué es eso?
Esto se debe a que, para categorías y etiquetas, la palabra clave de enfoque se guarda en otra parte de la base de datos. En lugar de guardarse dentro de la
wp_postmeta
tabla como de costumbre, está enterrado en el fondo de lawp_options
tabla, como un objeto JSON.Los métodos anteriores nos permiten acceder a estos valores.
Finalmente, si eres como yo y no puedes recordar el nombre de las taxonomías (por ejemplo: no es obvio por qué las etiquetas usan taxonomía
post_tag
y no solotag
, solo revisa las URL cuando editas una categoría o una etiqueta: se mostrará…taxonomy=category…
o similares.fuente
Responder Obtener la palabra clave de enfoque para categorías y etiquetas
// funciona gracias
// con la API de descanso
get / wp-json / wp / v2 / categories? slug =
slug_name
plugin.in usa el Método 1
cambio de linea
$meta['post_tag'][$tag->term_id]['wpseo_focuskw'];
$meta['category'][$param_post_id]['wpseo_focuskw'];
fuente