Themes y Diseño

Foro WordPress » WordPress » Themes y Diseño

Palabras clave (II) (5 mensajes)

Acerca de este hilo

Tags

Etiquetas:

  1. almendron

    5.0
    Antiguedad: Feb 2010
    Mensajes: 1.101

    offline

    Publicado hace 1 año
    #

    Mientras encuentro un plugin que gestione las plabras clave, he modificado el header de mi blog para que muestre como tales no solo las tags (que ya lo hacía) sino también las categorías. El código es el siguiente:

    < ?php /* Fusion/digitalnature */
      if(get_option('fusion_meta')< >'') {
       if (is_home()) {
        $metakeywords = get_option('fusion_meta');
       } else if (is_single()) {
        $metakeywords = "";
        $tags = wp_get_post_tags($post- >ID);
            foreach ($tags as $tag ) {
                  $metakeywords = $metakeywords . $tag- >name . ", ";
            }
        $categories = get_the_category($post- >ID);
            foreach ($categories as $cat) {
            $metakeywords = $metakeywords . $cat- >name . ", ";
        }
       }
      }
    ? >

    He hecho pruebas en local y en principio funciona bien.La cuestión que quiero plantear es la siguiente:

    En el código de la plantilla se usa "wp_get_post_tags" para las etiquetas. De primeras, busqué la misma función para las categorías y encontré "wp_get_post_categories". El caso es que ésta no funciona y he tenido que utilizar "get_the_category".

    ¿Alguien sabe por qué?

  2. José Cabezas

    5.0
    Antiguedad: Sep 2009
    Mensajes: 239

    offline

    Publicado hace 1 año
    #

    prueba agregando al foreach la funcion get_category()

    $categories = wp_get_post_categories($post- >ID);
            foreach ($categories as $cat) {
            $c = get_category($cat);
            $metakeywords = $metakeywords . $c- >name . ", ";
        }

    saludos

  3. almendron

    5.0
    Antiguedad: Feb 2010
    Mensajes: 1.101

    offline

    Publicado hace 1 año
    #

    Creo que no me he explicado bien. El código que puse funciona y solo quería saber por qué no daba resultado poner "wp_get_post_categories" y tuve que usar "get_the_category".

    En cualquier caso, gracias por intentar ayudar.

  4. LGrusin

    Moderador
    Antiguedad: Feb 2011
    Mensajes: 1.801

    offline

    Publicado hace 1 año
    #

    Explicar esto de forma que se entienda es complicado.

    Según creo entendido la información que devuelven es diferente.
    get_the_category devuelve un array con los siguientes objetos.
    cat_ID (term_id), cat_name(name), category_nicename(slug), category_description(description), category_parent(parent) y category_count(count).

    Sólo hay que ir recorriendo el array para encontrar los valores tal como has hecho.

    wp_get_post_categories devuelve un array con los identificadores de las categorías del post. Por eso hay que utilizar get_category tal como ha puesto José Cabezas para obtener un valor de la categoría pasada como ID.

    No sé si se me ha entendido.

    ¿Por qué? Pues según WordPress por temas de compatibilidad a la hora de implementar plugins, themes y taxonomías. ¿...?

    En caso de estar equivocado no creo que ande mal encaminado.

    Un saludo

  5. almendron

    5.0
    Antiguedad: Feb 2010
    Mensajes: 1.101

    offline

    Publicado hace 1 año
    #

    Tienes razón LGrusin. No me había fijado en que "wp_get_post_categories" devuelve la ID de la categoría pero no el nombre. Por eso no funciona.

    Y por eso es necesario ponerlo tal y como ha indicado José Cabezas. O usar directamente "get_the_category" que devuelve directamente el nombre.

    Gracias por las explicaciones a ambos.

Responder

Debes Identificarte para publicar.

Foro WordPress » WordPress » Themes y Diseño