Archivo de la categoría: Wordpress

Solucionar problema del dashboard wordpress sin css / sin estilos

Si alguna vez te encuentras con tu dashboard de WordPress sin css, o sin estilos, no desesperes.

Aunque no es un error habitual, es debido a algún solapamiento de cédigos, error en plugin, theme, tras alguna actualización de estos.

La solución es simple, insertamos un define en nuestro wp-config después de la declaración de los datos de acceso a la base de datos:

define( 'CONCATENATE_SCRIPTS', false );

Tras actualizar el archivo, y recargar la página (a veces tb será necesario borrar el caché) tu estilo debería volver a la vida en el dashboard de WordPress!

CONCATENATE_SCRIPTS es la constante que le dice a WordPress que, bueno .. concatene todas las dependencias en una URL y las cargue juntas (para guardar las solicitudes http, supongo). Comprueba el rendimiento de tu web con y sin este código.

Actualizar WordPress. Hay en este momento otra actualización en marcha – Solución

Actualizar WordPress. Hay en este momento otra actualización en marcha. Con este mensaje nos saluda WordPress cuando se nos queda «colgada» alguna actualización. Tiene fácil solución, es un flag que usa WordPress por seguridad para evitar actualizaciones múltiples y el bloqueo dura 15 minutos.

Si esperar no es lo vuestro (ni lo mío…) tenemos dos opciones:

La primera y más rudimentaria es editar en la tabla wp_options de tu base de datos un registro llamado core_updater.lock (si eres un «agraciado» poseedor de versiones anteriores a la 4.5 se llama core_updater a secas)

La segunda y menos salvaje es hacer uso de un plugin que hace por tí la primera solucion:  Fix Another Update In Progress

Al instalarlo tendremos una nueva opción en Ajustes que al hacer click solucionará el problema.

ACTUALIZACIÓN: En una instalación, actualizando de 4.9.3 a 4.9.8 no me ha funcionado el plugin… dándome el problema como solucionado, he tenido que borrar manualmente el registro en la tabla (primera solución)

Recuerda hacer siempre una copia de seguridad ante estos problemas, y por supuesto, antes de actualizar el core,theme o plugins de WordPress!

Hacer que Contact Form 7 trabaje con el codigo de tracking de conversión de google (adwords conversion tracking)

Resulta complicado con tanto cambio en google, ya que hace que la mayoría de la documentación en blogs esté desactualizada. De hecho quien sabe si mientras lees esto ya no funciona!! 😉 Google ha actualizado recientemente el código de JavaScript que te brinda cuando creas un evento de conversión. El Formulario de contacto 7 también ha desaprobado la compatibilidad con la antigua forma en que solía manejarlo, con la pestaña de configuración avanzada añadiendo on_submit: «goog_report_conversion(window.location.href);».

Los pasos a seguir actualmente para obtener métrica de conversiones en los formularios del plugin wordpress Contact Form 7 son:

CREAR UN CÓDIGO DE CONVERSION (TRACKING CODE) EN TU PLATAFORMA ADWORDS:

Esto es bastante simple, imagino que ya has hecho esto si estás leyendo esta página. No obstante, se verá algo como esto:

<!– Event snippet for <mi conversion>
In your html page, add the snippet and call gtag_report_conversion when someone clicks on the chosen link or button. –>
<script>
function gtag_report_conversion(url) {
var callback = function () {
if (typeof(url) != ‘undefined’) {
window.location = url;
}
};
gtag(‘event’, ‘conversion’, {
‘send_to’: ‘<your adwords code>’,
‘event_callback’: callback
});
return false;
}
</script>

Este codigo debe ser copiado en cada formulario de contacto (al final)

AÑADIR FUNCION A NUESTRO WORDPRESS

A continuación añadiremos una funcion a nuestro wordpress (en el archivo functions.php, al final de todo el código, por ejemplo):

add_action( ‘wp_footer’, ‘mycustom_wp_footer’ );

function mycustom_wp_footer() {
?>
<script type=»text/javascript»>
document.addEventListener( ‘wpcf7mailsent’, function( event ) {
gtag_report_conversion();
}, false );
</script>
<?php
}

Y con esto tus conversiones ahora deberían rastrearse y no es necesario hacer nada en la sección avanzada del formulario. La función creada en functions.php solo enviará el formulario cargado en el DOM cuando se haga clic en el botón Enviar.

NOTA: Si hay más de un formulario cargado en la página (con una ID diferente y cosa no habitual por otra parte) deberas modificar la funcion que has añadido a WordPress en functions.php

 

Desactivar la concatenación de archivos javascript del core WordPress

Para hacer un backend más rápido, WordPress concatena todos los archivos Javascript en una sola URL. pero podemos desactivar la concatenación de archivos javascript del core WordPress, que viene así por defecto.

En ocasiones, bien sea por algún plugin que provoca incompatibilidades, o bien por llamadas a estos archivos desde themes child o funciones de nuestra plantilla, vemos como los efectos drag&drop y otros, como los usados en las zona de widgets o creación de menús, realmente necesarios para la gestión de los mismos, desaparecen.

Si Javascript empieza a fallar en el área de administración, puedes probar a deshabilitar dicha concatenación añadiendo esta linea en tu wp-config.php:

define( 'CONCATENATE_SCRIPTS', false );

 

Eliminar miniaturas generadas automáticamente por WordPress

thumbnailsperdidos

Al cambiar a lo largo del tiempo los temas (themes) de WordPress, los cuales utilizan, una variedad tamaños a la hora de generar sus miniaturas, las carpetas wp-content/uploads/año/mes/ puede versa repleta de cantidad de imágenes repetidas a diversos tamaños, que nunca mas serán usados por el último theme instalado o creado.  Una manera fácil de deshacerse de esas imágenes abandonadas es eliminarlos y luego regenerar los que realmente necesita el theme actual. 

MOSTRAR TODAS LAS MINIATURAS GENERADAS AUTOMATICAMENTE:

cd /home/example/public_html/wp-content/uploads
find . -regextype posix-extended -regex ".*-[:digit:]{3}x[:digit:]{3}.(jpg|png)" -type f
cd /home/example/public_html/wp-content/blogs.dir
find . -regextype posix-extended -regex ".*-[:digit:]{3}x[:digit:]{3}.(jpg|png)" -type f

BORRAR TODAS LAS MINIATURAS GENERADAS AUTOMATICAMENTE:

cd /home/example/public_html/wp-content/uploads
find . -regextype posix-extended -regex ".*-[:digit:]{3}x[:digit:]{3}.(jpg|png)" -type f -exec rm {}  \;
cd /home/example/public_html/wp-content/blogs.dir
find . -regextype posix-extended -regex ".*-[:digit:]{3}x[:digit:]{3}.(jpg|png)" -type f -exec rm {} \;

Una vez borradas todas las miniaturas necesitaremos usar un plugin como Regenerate Thumbnails, que sólo volverá a regenerar las miniaturas que el theme instalado haya especificado.

Separar archivos XML importados de WordPress

Generalmente me encuentro que cuando realizas una exportación de datos WordPress de algún sitio con cierto recorrido, la base de datos ocupa generalmente más de lo que el propio servidor permite que importes de nuevo, en caso de problemas.

Para esos casos y siempre que no tengas acceso ssh a tu servidor puedes usar un software separador o splitter de archivos XML en las «megas» que tu consideres cada uno e importar uno a uno dichos archivos.

wxr-splitter

Solucion OSX: WXR File Splitter

wxr-file-splitter

Solución Windows: WordPress WXR File Splitter

Solucion Linux: comando  xml_split (+info)

 

Migrar un WordPress de hosting/dominio

Al desarrollar proyectos sobre WordPress suelo hacerlo en mi hosting personal, con acceso restringido y no indexando durante el desarrollo, para luego trasladarlo o migrarlo al hosting o alojamiento / dominio del cliente una vez finalizado dicho desarrollo. Voy a tratar de relatar paso a paso lo que debemos hacer para trasladar de manera correcta todo el proyecto.

En primer lugar copiamos todo el contenido de archivos de nuestro servidor a el nuevo dominio via FTP, todo el sistema wordpress con sus plugins y plantilla. Recomiendo No copiar o modificar el archivo wp-config.php de nuestro sistema antes de copiarlo. Para ello debes descargar todo el contenido en tu equipo local, para luego re-subirlo a el nuevo hosting.

Aparentemente si accedemos al nuevo dominio veremos que todo funciona a la perfección, hasta que te percatas que lo que esta haciendo es acceder a nuestra base de datos de pruebas, y por consiguiente a nuestro dominio. Yo personalmente recomiendo no copiar o modificar el archivo wp-config.php de nuestro sistema antes de copiarlo para que esto no suceda, para proteger así nuestras contraseñas personales si fuera el caso.

El problema es que WordPress guarda las direcciones de forma absoluta, en la base de datos. Con lo cual debemos también trasladarla y modificarla en el nuevo hosting/dominio.

En estos pasos se sobre-entiende que el dominio/hosting del cliente ya esta operativo y conocemos los accesos a phpmyadmin de ambos servidores (antiguo/nuevo).

phpmyadmin-wordpress-database

En el phpmyadmin de nuestro antiguo servidor, usaremos la pestaña EXPORTAR seleccionando TODAS LAS TABLAS  y en el apartado Estructura marcar la opcion «add DROP TABLE / VIEW / PROCEDURE / FUNCTION»

2

Después marcaremos la opción de grabar como archivo y elegimos la compresión que mas nos guste, con lo cual generara una copia en nuestro equipo local de toda la base de datos.

3

Importamos ahora desde el phpmyadmin del nuevo alojamiento usando la pestaña IMPORTAR y seleccionando el archivo de la base de datos exportada en nuestro equipo local. Este paso es mas sencillo y tampoco merece mas explicaciones…

4

Ya tenemos archivos y base de datos en el nuevo alojamiento, ahora debemos editar el archivo wp-config.php para modificar o añadir si  los hubieramos borrado los datos de acceso a la base de datos recien importada ya que puede no tener el mismo nombre, usuario y contraseña, incluso el host puede variar:

// ** Ajustes de MySQL. Solicita estos datos a tu proveedor de alojamiento web. ** //

/** El nombre de tu base de datos de WordPress */

define('DB_NAME', 'nombredelabasededatos');

/** Tu nombre de usuario de MySQL */

define('DB_USER', 'usuariodelabasededatos');

/** Tu contraseña de MySQL */

define('DB_PASSWORD', 'passworddelabasededatos');

/** Host de MySQL (es muy probable que no necesites cambiarlo) */

define('DB_HOST', 'localhost');

Antes de probar el nuevo sitio, debemos realizar unas modificaciones que permitiran a el nuevo hosting acceder correctamente a el nuevo dominio. Para ello usaremos la solapa SQL del nuevo phpmyadmin con las siguientes consultas de actualización:

nota: el nombre de la tabla puede variar y además es conveniente por motivos de seguridad (por ejemplo, en lugar de wp_options podria ser pepe_options…)

En primer lugar actualizamos la nueva URL del sitio al nuevo dominio:

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

A continuacion buscamos coincidencias dentro de los post que hagan referencia al antiguo dominio para tambien actualizarlo.

UPDATE wp_posts SET guid = replace(guid, 'http://www.miantiguodominio.com',
 'http://www.nuevodominio.com');

Después remplazamos todos los enlaces que tenga el contenido, para no tener errores 404.

UPDATE wp_posts SET post_content = 
replace(post_content, 'http://www.miantiguodominio.com', 
'http://www.nuevodominio.com');

No nos olvidemos de las posibles referencias de los campos personalizados en caso de usarlos en nuestro proyecto:

UPDATE wp_postmeta SET meta_value = 
replace(meta_value, 'http://www.miantiguodominio.com', 
'http://www.nuevodominio.com')

Con estas «queries» debería ser suficiente, aunque en algunos casos me ha sucedido que algún plugin usa direcciones de forma absoluta con lo cual toca modificar la tabla en concreto, lo mejor es hacer una búsqueda en toda la base de datos con la cadena «www.miantiguodominio.com» desde la solapa BUSCAR y phpmyadmin nos indicará qué tablas de la base de datos y cuantas coincidencias existen en cada una de ellas, con lo cual te facilita mucho el modificarlas.

 

Tweet&Get it ! – Optimizando tus recursos a través de twitter

Tweet & Get it! es un interesante plugin para WordPress que nos llega de  mano de Viuu , mas bien conocidos por sus fondos de pantalla para Twitter y que nos ayudará a generar un poco mas de tráfico en la web en la descarga de los recursos que ofrecemos para descarga en nuestro sitio web o blog. Esto lo consigue no mostrando la descarga correspondiente hasta que no tuiteamos sobre lo que queremos descargar e invitando a los seguidore a seguir la cuenta de Twitter del nuestro sitio.

Una vez instalado el plugin en nuestro blog, el mismo permite generar un botón de descarga que contendrá el archivo (ya sea canción, ebook, PDF, Excel, Word o recurso web)  que estará disponible para el usuario, cuando envíe un tweet anunciando la descarga y siga la cuenta del sitio del que se descarga dicho archivo. Le veo ciertos problemas de seguridad subsanables facilmente, como por ejemplo la ruta de subida automatica, ya que te publica en un directorio superior a «uploads» dejando al descubierto carpetas que no deberian, nada como añadir a esa carpeta un index.php «silencioso» para arreglarlo…

El crecimiento de followers utilizando esta tecnología es prácticamente exponencial, ya que cualquier visitante a nuestro sitio que desee comenzar a consumir lo que le ofrezcamos, tendrá obligatoriamente que promocionarnos para descargar lo que quiere, de esa manera nos aseguramos un cierto crédito sobre lo que ofrecemos evitando usuarios pasivos.


[tweegi-button name=»Twitea y descarga»]

Aqui os dejo una prueba de funcionamiento del boton. Pulsa justo en el boton que hay encima de este párrafo y comprenderas perfectamente el funcionamiento del plugin al momento! Descargarás un archivo txt de prueba, pero para ello deberás twittear antes…

 

Enlace a la web del Plugin : Tweet&Get it!

Theme base para WordPress basado en Grid 960

grid960designios

Hace poco que uso el framework 960gs, pero el resultado siempre ha sido mas que satisfactorio a la hora de crear sitios web, y más si se usa como base WordPress para dichos sitios.

Para no tener siempre que reusar los themes ya creados para microsites eliminando elementos y dejandolo desnudo de nuevo, he decidido crear una plantilla base para los proyectos venideros dejando como base en una rejilla de 16 columnas,  cabecera, cuerpo, barra lateral y pie, distinguidos por tan solo la propiedad background en el css. Y de paso compartirlo con la comunidad WordPress. Se ve feo… pero de eso se trata… de ponerlo guapo 😉

designiosgridtheme

Está disponible para su descarga en otro de mis alter egos… Designios.

Integración de Google Calendar en Wordress (wpng-calendar) en castellano.

Debido a uno de los proyectos que estamos comenzando he buscado soluciones para incluir una agenda a modo de página dentro de wordpress y buscando me encontré con wpng-calendar en Google Code (enlace). Este plugin te permite usar una cuenta Google Calendar como agenda en tu propio blog de la manera mas sencilla.

wpng-cal1

Para un uso en castellano he traducido (en la medida que he podido) casi todo, incluyendo el enlace a google maps de la ventana emergente de cada evento que me remitia a el enlace inglés.

wpng-cal4

Las imagenes, obviamente, son de la version 0.85 original. Puedes descargar esta misma version del plugin traducido aqui: wpng-calendar-castellano.zip

Instalación

  1. Solicita tu Google GDATA API key (enlace)
  2. Sube el contenido del zip a el directorio  /wp-content/plugins/
  3. Activa el plugin a traves del menú plugins de tu panel de administración
  4. Introduce tu GDATA API key en el panel de wpng-calendar
  5. Configura las opciones siguientes
  6. Configura la opcion de renderizar el campo de descripcion como ‘Wiki Markup’
  7. Crea una pagina en blanco y añade ‘show-wpng-calendar’ como campo personalizado con el numero de semanas que deseas mostrar en esa pagina
  8. Añade el widget a tu sidebar y configura el titulo y el numero de eventos a mostrar

Solo un calendario puede asociarse a el plugin.

Podeis verlo funcionando en ShoppingCoruña.es

Google Blogsearch y Technorati también juntos en WordPress 2.5

Parece ser que el index-extra.php que preparé para la versión 2.3 y anteriores también funciona en la versión 2.5. Tan solo sustituyendo dicho archivo por el mío, y editando el feed RSS del widget de enlaces entrates del escritorio o dashboard del blog, borrando la URL que aparece y dejandolo en blanco (aunque muestre un mensaje al guardar indicando que no se ha encontrado ningun feed) ya tendremos ambas referencias en nuestro escritorio.

En las lineas 24 y 38 del archivo podeis modificar el número de entradas a mostrar en el escritorio modificando la última cifra por el número que querais tener:

$rss->items = array_slice($rss->items, 0, 5);

Descarga aquí index-extra.zip modificado.

Por cierto, me he enterado de que mi «invento» sigue funcionando gracias a Ayuda WordPress vía Intertextual.