es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtener un valor en la página del autor desde una taxonomía personalizada.

He creado una Taxonomía Personalizada llamada nacionalidad, luego la agregué para permitir al usuario elegir su nacionalidad a través de un Formulario de Edición de Cuenta Personalizado utilizando ACF.

Estoy intentando obtener el valor de la Taxonomía en la página Author.php, pero retorna como Array. Este es el código que estoy usando:

  <?php 
    $curauth = (isset($_GET['authorname'])) ? get_user_by('slug', $authorname) : get_userdata(intval($author));
    $terms = wp_get_post_terms($post->ID, 'nationality', $curauth);
    if ($terms){
        $out = array(
            'name' => '<span>Nacionalidad: </span>'
        );   
        foreach ($terms as $term) {
            $out[] = '<a href="' . esc_url(get_term_link($term->slug, 'nationality')) . '">' . $term->name .'</a>';
        }
        echo join(' ', $out); 
    }
  ?> 

También he intentado el siguiente código:

  <?php
  $nationality = get_field('nationality', $curauth);
  $nationality = get_field_object('nationality', $curauth);
  echo $nationality['value']; 
  ?>

Aún me devuelve un Array.

El tipo de campo es “select” y el “Valor de retorno” está configurado como “Objeto de Término” o “ID de Término”.
El error que obtengo es “No se pudo convertir el objeto de la clase WP_Term a string”.

¿Alguna idea de cómo corregir esto?

¡Gracias!
Ahmad

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución para mostrar el valor de la taxonomía personalizada en Author.php

    Para mostrar el valor de la taxonomía personalizada en la página Author.php, necesitas modificar el código existente o usar uno nuevo. Aquí hay algunas soluciones que pueden ayudarte:

    1. Usando la función wp_get_post_terms():

    Puedes usar la función wp_get_post_terms() para recuperar los términos de una taxonomía personalizada para el post actual. Aquí está el código modificado:

    $terms = wp_get_post_terms($post->ID, 'nationality');
    if($terms){
        echo '<span>Nacionalidad:</span>';
        foreach($terms as $term){
            $term_link = get_term_link($term);
            echo '<a href="'.$term_link.'">'.$term->name.'</a>';
        }
    }
    

    En este código, recuperamos los términos de la taxonomía personalizada ‘nationality’ para el post actual usando la función wp_get_post_terms(). Luego usamos un bucle foreach para mostrar cada término como un enlace con su nombre y enlace permanente.

    1. Usando la función get_terms():

    También puedes usar la función get_terms() para recuperar los términos de una taxonomía personalizada para el usuario actual. Aquí está el código:

    $terms = get_the_terms($curauth->ID, 'nationality');
    if($terms){
        echo '<span>Nacionalidad:</span>';
        foreach($terms as $term){
            $term_link = get_term_link($term);
            echo '<a href="'.$term_link.'">'.$term->name.'</a>';
        }
    }
    

    En este código, recuperamos los términos de la taxonomía personalizada ‘nationality’ para el usuario actual usando la función get_the_terms(). Luego usamos un bucle foreach para mostrar cada término como un enlace con su nombre y enlace permanente.

    Nota: Asegúrate de haber registrado correctamente tu taxonomía personalizada y haber seleccionado la taxonomía ‘nationality’ para el campo ACF de tipo select.

    Espero que esta solución te ayude a mostrar el valor de la taxonomía personalizada en la página Author.php.

Comments are closed.