the_author_meta no funciona

2

Estoy intentando usar the_author_meta para recuperar algunos enlaces que los usuarios pueden establecer en su perfil.

Configuré campos de perfil adicionales y se están guardando en la base de datos.

En mi author.php tengo el siguiente código.

<div class="user_social_icons"><a href="<?php the_author_meta('facebook'); ?>" class="facebook" title="Facebook"></a></div>

Por alguna razón, esto parece no estar funcionando.

¿Alguna idea de por qué puede ser?

Saludos

    
pregunta Ged 20.05.2012 - 21:30

1 respuesta

5

Es totalmente posible que esté llamando a the_author_meta() desde fuera de su bucle de publicación en la plantilla author.php , en cuyo caso no funcionará lo anterior.

En su lugar, puedes usar

  • get_the_author_meta('facebook') o ...
  • get_the_author_meta('facebook', $user_id) donde $user_id es el ID # del usuario / autor actual.

Para obtener el ID de usuario, puede hacer esto;

<div class="user_social_icons">
    <a href="<?php $id = get_current_user_id(); get_the_author_meta('facebook', $id); ?>" 
    class="facebook" title="Facebook"> ??NO TEXT TO CLICK??  </a>
</div>


Observe que asignamos la variable $id = get_current_user_id(); y luego la pasamos a nuestra función get_the_author_meta .

??NO TEXT TO CLICK?? no es un error: literalmente no hay texto entre las etiquetas de anclaje para que las personas puedan hacer clic, por lo que no ve nada.

Notas:

  • the_author_meta($field, $userID) - trabaja dentro de & fuera del bucle / hará eco de los valores.
  • get_the_author_meta($field, $userID) - trabaja dentro de & fuera del bucle / devolverá valores.

** cuando está dentro del bucle, no es necesario especificar $ userID si desea los metadatos para ese autor de la publicación; de lo contrario, el uso del parámetro ID en el bucle le permite obtener el meta específico del usuario para el cual usted pasa en.

No es del todo necesario especificar el parámetro user_id, a menos que desee capturar los datos de otro usuario que no sea el autor actual de la publicación, sin embargo, como una medida adicional al pasar ese valor puede ayudarlo a resolver su problema. Ambas funciones aceptan el parámetro user_id por cierto.

Así que para recapitular,

  • Comprueba el contexto desde el que llamas a tu función, ¿está dentro del bucle o fuera del bucle? dependiendo de dónde esté tu autor. php desde la que está llamando, elija la función apropiada como se describe anteriormente. Opcionalmente pase el ID de usuario si quiere estar completamente seguro.

  • Verifique si el hecho de que no tenga texto <a href"#">between</a> href de hecho le está causando el problema, a menos que esté inyectando el enlace o estilizando el enlace / div con un ancho / alto / fondo y luego este es el probable culpable y por qué no está viendo nada.

respondido por el userabuser 21.05.2012 - 01:06

Lea otras preguntas en las etiquetas