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. 6 Comentarios »

6 comentarios

Comentar este artículo

Nombre (Requerido)

Correo (No será publicado) (Requerido)

Sitio web

Secciones

Anteriores

comentarios recientes

@Willy en ¿Joomla Vs. Wordpress? (1ª parte): Era lo que necesitaba leer!!! como programador, aprender como editar un template de cero en joomla y...

@Willy en [Meme] Concepto bizarrón de CSS: Cagadas Siempre Suceden!! XD Counter Strike Server. no es bizarro pero bue!!

@Horacio en ¿Joomla Vs. Wordpress? (1ª parte): Hola, hace tiempo empece a trabajar con joomla y armar mi sitio web en un servidor gratuito para...

@birgitta en ¿”WatchTower” o “CashPower”?: Hilaridad sin H,mis disculpas

@birgitta en ¿”WatchTower” o “CashPower”?: AY AY AY.Cuanto lobotomizado hay por aqui!!!!!! Muchas gracias Dario por tu...

@Darío en ¿Joomla Vs. Wordpress? (1ª parte): Gracias por la sugerencia tocayo, voy a analizarla! Luego de buscar un poco más encontré que la página...

@Juan Vera en Dar acceso a grupos de Joomla (o restringírselo) para cualquier componente: Hola, mira yo quiero algo parecido pero para las personas...

@Emanuel en Dos tips sobre Adobe Reader: Detener AcroRd32Info.exe e impedir actualizaciones automáticas: Para que molestarse instalando acrobat si...

Darío Ferrer — Blog personal

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

61 consultas a la BD en 0,964 segundos. Blog alojado en DreamHost