Cómo cambiar las URLs en la base de datos cuando la web en wordpress es migrada a otro servidor

Si migramos nuestra web a otro servidor podemos encontrarnos con el problema en la base de datos de que sigue apuntando a las urls de la web antigua. Para solucionarlo podemos usar el phpmyadmin y ejecutar las siguientes sentencias:

UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldurl', 'http://www.newurl') WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts SET guid = replace(guid, 'http://www.oldurl','http://www.newurl');

UPDATE wp_posts SET post_content = replace(post_content, 'http://www.oldurl', 'http://www.newurl');

UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://www.oldurl','http://www.newurl');

En nuestro caso esto nos ha funcionado siempre, pero quizás en determinadas circunstancias de un error o tengas que modificar más tablas para cambiar todas las URLs.

Cómo solucionar error utf8mb4_unicode_520_ci

Cuando migramos una web de wordpress a otro servidor, en el proceso de importar la base de datos en archivo .sql o comprimido en el nuevo servidor por phpmyadmin podemos encontrarnos un error como utf8mb4_unicode_520_ci, que si tenemos la web en inglés sería: Unknown collation: ‘utf8mb4_unicode_520_ci’.

Para solucionarlo tenemos que editar el archivo .sql con el editor Notepad++ y remplazando todas las palabras utf8mb4_unicode_520_ci a utf8mb4_unicode_ci, entonces salvamos el archivo y lo volvemos a importar. Ya no nos dará ese error.

Cómo solucionar El plugin ha provocado una salida inesperada de caracteres durante la activación

Si estamos creando plugin para wordpress puede que cuando lo activemos nos encontremos con el siguiente mensaje:

“El plugin ha provocado una salida inesperada de x caracteres durante la activación”, sustituyendo x por el valor que nos de.

Este problema lo genera la codificación no adecuada del plugin.

Para solucionarlo es muy sencillo, tenemos que Codificar en ANSI los archivos del plugin. Utilizando Notepad ++ podemos hacer clic en el menú Formato y después pulsamos en Codificar en ANSI.

Dar permisos proyecto Drupal 7 en Linux (Ubuntu 14.04)

Cuando importamos un proyecto de Drupal 7 en linux (en mi caso ubuntu 14.04) nos podemos encontrar con problemas en los permisos y en el autor de los archivos.

Si tenemos algún problema podemos hacer lo siguiente:

1. Revisar el autor situándonos en la raíz de la web y escribiendo en la consola

ls -la

Ahí podemos ver que usuario es el autor de los archivos, si no esta www-data tenemos que cambiarlo para que esté sea el autor ya que es el usuario por defecto de la web, nos situamos en un nivel por encima de nuestra web y ponemos:

chown victor:www-data directorio-web/ -R

Con esto hemos cambiado el usuario en todos los archivos de la carpeta donde está drupal: directorio-web

2. Permisos en toda la web (después afinamos)

chmod 755 directorio-web/ -R

3. Permisos en settings.php

chmod 444 sites/default/settings.php

4. Permisos en la carpeta /files

chmod 775 sites/default/files/ -R

En el punto 4 también puede valer en algunos tutoriales 777

Ocultar intercambiar idiomas debajo del contenido en Drupal 7

Si estamos utilizando i18n con Drupal 7 puede que tengamos el intercambio de idiomas debajo del contenido. Por ejemplo, si tenemos los idiomas español, inglés y francés y estamos en un nodo con idioma español puede que veamos abajo: inglés francés, con hipervínculo a su traducción.

Si queremos ocultarlo o esconderlo se comentan en la red diferentes opciones como ocultarla por CSS o cambiar la plantilla, pero al final son parches. La solución es mucho más sencilla:

  1. Vamos a admin/config/regional/i18n/node
  2. Marcamos el check Esconder enlaces de traducción de contenido y guardamos

Con esto habremos eliminado el intercambiador de idiomas en la parte inferior de los nodos.

Salto de línea en texto sin formato con Drupal 7

Cuando tenemos un campo Área de texto y elegimos texto sin formato vemos que al crear líneas pulsando en el enter en el editor nos lo guarda pero en el frontend no. Es decir, no vemos en el frontend saltos de línea por cada vez que hemos dado al enter cuando escribimos.

Para solucionarlo tenemos que editar el archivo css de la plantilla que utilizamos y añadir lo siguiente:

.field-type-text-long .field-item.even {
    white-space: pre-line;
}

Borramos cache si fuera necesario y al recargar la página vemos que si muestra saltos de línea.

Cómo quitar título en la página principal con Drupal 7

Si con Drupal 7 utilizamos una plantilla que estamos creando a medida como un subtheme de Zen puede que nos encontremos algunos problemas de configuración. Uno de ellos puede ser que nos muestre el título de la página en la página de inicio. Eliminarlo es muy sencillo:

.front h1#page-title {
  display: none;
}

Cómo habilitar el último día de cada mes en datepicker de Jquery

Si queremos habilitar sólo el último día de cada mes podemos añadir este script en el head de nuestra página web:

$(function() {
    $( "#datepicker" ).datepicker();
  });
  function LastDayOfMonth(Year, Month)
{
    return(new Date((new Date(Year, Month+1,1))-1)).getDate();
}
  $(function() {
   $('#txtDate').datepicker({
       beforeShowDay: function (date) {
        //getDate() returns the day (0-31)
        if (date.getDate() == LastDayOfMonth(date.getFullYear(),date.getMonth())) {
            return [true, ''];
        }
        return [false, ''];
    }
   });
});

Con lo que tendríamos lo siguiente para el mes de Septiembre de 2015:

Datepicker último día de cada mes

 

El código completo para que funcione en un archivo .html sería el siguiente:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Datepicker - Default functionality</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script>
  $(function() {
    $( "#datepicker" ).datepicker();
  });
  function LastDayOfMonth(Year, Month)
{
    return(new Date((new Date(Year, Month+1,1))-1)).getDate();
}
  $(function() {
   $('#txtDate').datepicker({
       beforeShowDay: function (date) {
        //getDate() returns the day (0-31)
        if (date.getDate() == LastDayOfMonth(date.getFullYear(),date.getMonth())) {
            return [true, ''];
        }
        return [false, ''];
    }
   });
});
</script>
</head>
<body>
Fecha: <input type='text' id='txtDate' />
</body>
</html>

Cómo indicar el espacio o altura entre las líneas de texto con line-height

Si queremos indicar un determinado espacio entre las líneas de un texto podemos utilizar line-height para determinar la altura entre las líneas.

Por ejemplo si damos un espaciado de 5px entre las líneas:

line-height: 5px;

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Y si damos un espaciado mayor de 20px:

line-height: 20px;

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.