Existen muchas razones para cambiar el autor de un post. Supongo que el caso más relevante lo representa cuando traemos artículos ajenos a nuestra web y no deseamos que aparezca nuestro nombre como autor del mismo. En fin, el siguiente código lo propuse en un foro como solución a un problema expuesto por un usuario. Vamos a construirlo paso a paso (Para los queridos vagos y flojos: al final de este artículo pueden encontrar el código terminado. Cópienlo en frío y que les aproveche).
1.- Dirígete directo al directorio de tu plantilla y abre functions.php (si no existe créalo). Comienza por inventarte una función; en esta ocasión llamémosla mi_autor:
1 2 3 4 | <?php function mi_autor() { } ?> |
2.- Trabajarás con campos personalizados (explicado más adelante), así que utilizarás la función nativa get_post_meta, la cual actúa de forma relativa a la entrada afectada. Siempre que eches mano a funciones de este tipo debes llamar a la variable universal $post para que ésta pueda operar. Recuerda eso siempre. Si no lo haces devolverá false y generará un resultado vacío (en cristiano: no aparecerá nada). Entonces tu código lucirá así:
1 2 3 4 5 | <?php function mi_autor() { global $post; } ?> |
3.- Nombremos “autor” como clave campo personalizado que usarás. Ten en cuenta que “autor” (como campo) representa una clave única en la base de datos y no puede existir otro campo llamado “autor”, ya que WordPress localizará la clave “autor” de ese artículo y devolverá el valor. Aclarado este punto vámonos a la naciente función y asignamos get_post_meta a la variable, de esta manera:
1 2 3 4 5 6 | <?php function mi_autor() { global $post; $autor = get_post_meta($post->ID, 'autor', true); } ?> |
4.- Ahora definamos la variable que dará salida al resultado. Llamémosla $aut y asignémosle en principio un valor vacío:
1 2 3 4 5 6 7 | <?php function mi_autor() { global $post; $autor = get_post_meta($post->ID, 'autor', true); $aut =''; } ?> |
5.- Analicemos ahora las opciones que obtendrás una vez la función esté operativa:
Traducimos lo anterior a lenguaje PHP y tenemos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php function mi_autor() { global $post; $autor = get_post_meta($post->ID, 'autor', true); $aut =''; if($autor != '' and $autor != 'no') { $aut .= 'Por '.$autor; } elseif($autor == 'no') { $aut .= ''; } else { $aut .= 'Por '.get_the_author(); } echo $aut; } ?> |
Como pudiste notar utilizamos la variable $aut para construir nuestro conjunto de condicionales y cerrarla con broche de oro para que no existan opciones extrañas que puedan arruinar la función. Al final le damos salida con un echo, quedando lista para la acción.
Nota también cómo utilizamos get_the_author, la cual es la versión de the_author para ser utilizada en el paso de parámetros. Esto significa que si usas the_author conocerás el infierno de manera súbita y temprana, ya que el resultado será muy distinto al que esperabas.
Nada más simple. Una vez guardes la función en functions.php sólo dirígete al panel de edición de tus artículos y rellenas el campo personalizados de esta forma:

Publicado en Wordpress. 6 Comentarios »
Sin animo de ser polémico pero a ti te agrada ese autor que pusiste en el ejemplo, ¿no?
Interesante articulo y muy bien explicado. Me va a servir para una funcionalidad donde los usuarios participen y se pueda dar credito a quien colaboro.
Hola!
Este codigfo ya lo he utilizado en una de mis webs, pero ahora que voy a abrir una nueva, intento usarlo pero me salta este error cunado intento entrar al panel de admin:
1 | Warning: Cannot modify header information - headers already sent by (output started at /home/s1006cdd/public_html/wp-content/themes/i3theme-1-8-classic-fluid/functions.php:115) in /home/s1006cdd/public_html/wp-includes/pluggable.php on line 868 |
Haber que se puede hacer, un saludo.
@Andrés en Dictador Micheletti: Haré lo que sea para convencer a Obama: Darío…! y yo queme mataba de la risa viendo cómo los Testigos de...
@Daniel en Dos tips sobre Adobe Reader: Detener AcroRd32Info.exe e impedir actualizaciones automáticas: muchas gracias man!!! genial la info que...
@Sebastian en ¿Joomla Vs. Wordpress? (1ª parte): Hola, excelente artículo, actualmente me encuentro definiendo que CMS usar y ando evaluando entre...
@Alyen en The Post Thumbnail Vs. WP Smart Image II: Gracias Darío, espero tu respuesta. Otra cosa tengo la traduccion desde hace tiempo, te aviso...
@Andrés en Cómo extraer miniaturas de imágenes en Wordpress (2da revisión – Código mejorado): Hola Darío: Ya solucioné mi problema. -...
@Andrés en Cómo extraer miniaturas de imágenes en Wordpress (2da revisión – Código mejorado): Hola a todos: He seguido todos los pasos...
@uri en 240 plugins JQuery: buenas Darío, buena recopilación… estoy buscando un plugin para wordpress que al pinchar a una imagen me la...
@ramon en ¿Joomla Vs. Wordpress? (1ª parte): felicidades por el articulo y por esa capacidad de analisis. Voy a contar mi experiencia y voy a...
Darío Ferrer — Blog personal
Sitio desarrollado con Wordpress, software libre para un mundo libre.
61 consultas a la BD en 0,704 segundos. Blog alojado en DreamHost