Soporte » WordPress Avanzado » Obtener la categoría principal en un post

  • Hola amigos!

    Con esta instrucción obtengo en la variable $firstCategory la primera categoría de un post (en single.php).

    $firstCategory = $category[0]->cat_name;

    ¿Hay alguna manera de obtener la categoría principal e introducirla en una variable? He estado buscando mucho pero no he encontrado ninguna consulta similar.

    Agradecería vuestra ayuda, creo que puede ser útil también para otros usuarios.

    Saludos!

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • Moderador Jose Luis

    (@jose64)

    Hola.

    WordPress por defecto no tiene categoría principal, todas son exactamente iguales. Para definir una categoría como principal tienes que usar algún plugin, por ejemplo Yoast SEO, tienes información en:

    How to select a primary category

    Revisa esta documentación:

    yoast_get_primary_term() – Get the primary term name.

    WordPress: how to get the primary category for a post

    Quedamos a la espera de tus comentario y, por favor, recuerda marcar el debate como resuelto cuando así sea, de esta forma nos ayudas a mantener el foro al día.

    Iniciador del debate bernard88

    (@bernard88)

    Hola Jose Luis,

    Gracias por tu respuesta, pensaba que la categoría principal era una función de WordPress, pero veo que es de Yoast seo.

    He probado la soluciones que indicas en esas páginas, pero sin éxito.

    Tras añadir la función tal cual está en https://www.lab21.gr/blog/wordpress-get-primary-category-post/ a functions.php,

    Pruebo con el código que muestra de ejemplo en single.php

    $post_categories = get_post_primary_category($post->ID, ‘category’);
    $primary_category = $post_categories[‘primary_category’];
    echo $primary_category;

    Incluso cambiando $post->ID por un identificador de entrada existente, no consigo obtener la categoría (no muestra nada al mostrar la variable).

    ¿Alguien sabría identificar el error?

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • Debes estar registrado para responder a este debate.