Archivo de la categoría: Wordpress

WordPress: Redireccionar una pagina al Home

Algunas veces creamos paginas en wordpress como parte de la estructura de un sitio (una columna por ejemplo) y no queremos que sea vista por nuestros usuarios. Podemos entonces crear una nueva plantilla que redireccione a nuestros usuarios al Home del sitio:

<?php
/*
Template Name: Redirect To Home
*/
if (have_posts()) {
  while (have_posts()) {
    the_post();
    wp_redirect(home_url());
  }
}
?>

Solo crea un nuevo archivo con este código, de nombre single-redirect-home.php (o como quieras nombrarla) y asignala como plantilla en la pagina que quieres usar la redirección.

WordPress: Redireccionar una página a la primer sub-página

Muchos usuarios de WordPress usan una estructura de paginas -> sub-paginas para mantener ordenada su información. En algunos casos, las paginas principales quedan vacias y aunque su existencia es importante, su contenido no. En estos casos es útil crear una nueva plantilla en el tema, que hace una redirección a la primer sub-página de la pagina actual:

<?php
/*
Template Name: Redirect To First Child
*/
if (have_posts()) {
  while (have_posts()) {
    the_post();
    $pagekids = get_pages("child_of=".$post->ID."&sort_column=menu_order");
    $firstchild = $pagekids[0];
    wp_redirect(get_permalink($firstchild->ID));
  }
}
?>

Solo crea un nuevo archivo con este código, de nombre single-redirect.php o algo similar y asignala como plantilla en la pagina que quieres usar la redirección.

WordPress: Configuraciones para mantener el codigo intacto en el editor TinyMCE

Por defecto wordpress usa como editor de texto en paginas y posts el TinyMCE, un gran plugin que funciona bien en la mayoría de los casos pero que cuando necesitas publicar código html sin que te modifique nada puede dar problemas.

Para lograr esto, regularmente hago 2 cosas:

  1. En el archivo functions.php del tema activo agrego esta linea para evitar que wordpress agregue automáticamente el tag <p>
    remove_filter ('the_content', 'wpautop');
  2. Instalar el plugin Preserved HTML Editor Markup, que lo encuentran en el sitio oficial de wordpress, en la dirección http://wordpress.org/plugins/preserved-html-editor-markup/ . En caso que no lo encuentren, el archivo esta adjunto a esta nota y lo pueden descargar dando click en: preserved-html-editor-markup.

Todo listo! ahora el editor de texto no borrara o agregara tags que rompan nuestro código y eviten que las paginas se vean tal como queremos!

Mover un sitio WordPress a otro dominio

Les ha pasado alguna vez al terminar el desarrollo de un sitio en WordPress, que al mover el código al servidor del cliente, se pierden configuraciones, widgets, o menús?

El procedimiento que sigue la mayoría de personas es simplemente descargar la base de datos del sitio, buscar y reemplazar el nombre del dominio en el archivo SQL y luego subir este script modificado en el dominio nuevo.  Puede parecer que de esta forma todo esta bien, pero el problema esta en la forma como WordPress guarda la información de los widgets/menus en la base de datos: Serialized Data. Básicamente son cadenas de texto para el contenido y una variable para el tamaño de la cadena. Al buscar y reemplazar, la mayoría de las veces el nuevo nombre de dominio tiene mas o menos letras que el dominio que usamos para hacer el desarrollo y php al cargar el Serialized Data, rechaza el valor ya que el tamaño es diferente.

Desde el sitio oficial de WordPress nos dan la solucion al problema: utilizar el script http://spectacu.la/search-and-replace-for-wordpress-databases/ para hacer el cambio de dominio. Los pasos a seguir son:

  1. Descargar el script de la base de datos del sitio original.
  2. Sin hacer ninguna modificación, subir el script de la base de datos al servidor de destino.
  3. Instalar el script searchreplacedb2.php en el directorio public_html del servidor de destino y abrirlo en el navegador (ejemplo http://nuevoservidor.com/searchreplacedb2.php).
  4. Seguir las instrucciones en pantalla para buscar/reemplazar el nombre del dominio viejo, por el nombre de dominio nuevo.
  5. Borrar el script searchreplacedb2.php del servidor cuando termines! 

Es siempre recomendado bajar la última versión del archivo desde la pagina del desarrollador, pero por si acaso, aqui puedes bajar la version que utilice a la hora de escribir esta entrada:  searchreplacedb2.php