Cambiar el autor de un post en Wordpress

11 de Junio de 2009 — Darío Ferrer

Cambiar autor en WordpressExisten 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:

  • Si dejas el campo vacío, apareces tú como autor.
  • Si escribes un nombre cualquiera, ese mismo es el que aparecerá.
  • Si escribes “no” (sin comillas) no aparecerá nada.

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.

Cómo aplicarlo en el panel

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:

cambiar-autor-1

  • Bitacoras.com
  • Meneame
  • Twitter
  • del.icio.us
  • Facebook
  • Digg
  • Technorati
  • BarraPunto

Publicado en Wordpress. 4 Comentarios »

4 comentarios

Comentar este artículo

Nombre (Requerido)

Correo (No será publicado) (Requerido)

Sitio web

Secciones

Anteriores

comentarios recientes

@Jk en ¿”WatchTower” o “CashPower”?: Hola! Solo queria decirte algo de corazon, no soy testigo, pero muchas veces...

@Glass en ¿Joomla Vs. Wordpress? (1ª parte): Muy interesante post, aunque algo parecido leí en alguna parte pero en inglés, aunque aquí se tocan...

@Ricardo Olivera en ¿Joomla Vs. Wordpress? (1ª parte): Muy interesante el post y los comentarios. Yo quiero poner una tienda tipo carrito de...

@Antonio García en ¿Joomla Vs. Wordpress? (1ª parte): Creo que la comparación no debería tomarse tan literalmente, creo que muchos usuarios no tan...

@Daniel Gonzalez en ¿Joomla Vs. Wordpress? (1ª parte): Sobre la comparación de lo que puede o no puede hacer wordpress y joomla, sería interesante...

@Bandolera en ¿Joomla Vs. Wordpress? (1ª parte): Hola chicos malos: Según he leido el artículo y los comentarios dejados, me doy cuenta que en...

@ABTOP en Construir letras capitulares en Wordpress. Parte I – PHP: Similar, but slightly different approach: http://newrussianamerica.co...

@claudia santiesteban hernandez en Malos consejos: yo tengo una enemiga por mis espaldas y hasta le tengo y me quito a angel eso me da miedo y...

Darío Ferrer — Blog personal

Sitio desarrollado con Wordpress, software libre para un mundo libre.

58 consultas a la BD en 0.712 segundos. Blog alojado en DreamHost