Cómo mudar tu blog de WordPress de un hosting a otro

Wordpress

Basado en mi experiencia mudando blogs de WordPress de un servidor a otro les dejo un resumen de todo lo necesario para realizar la mudanza sin que falte  nada:
Cosas a descargar:

  • Descargar la misma versión de WordPress que utilizas en tu blog.
  • Descargar la carpeta uploads, que es en la que se encuentran todos los archivos multimedia que has subido (imágnes, archivos adjuntos, etc)
  • Descargar la carpeta de plugins.
  • Descargar tu theme.
  • Descargar el archivo .htaccess.
  • Descargar el archivo wp-config.php
  • Descargar la base de datos.

Explicación:

Descargar la misma versión de WordPress que utilizas en tu blog

Obviamente no intentarás mudar tu sitio para otro hosting y subir una versión diferente de Wodpress, esto te podría provocar algunos conflictos. En caso de tener una versión de WordPress anterior a la vigente y no poder descargarla, haz una actualización a la versión más reciente de WordPress y ahora sí puedes descargar WordPress y subirlo al nuevo hosting vía ftp. Para subir los archivos de WordPress a tu servidor (y descargar y subir los que mencionamos más adelante) utiliza Filezilla. Si no sabes como usarlo, lee esta guía.

Descargar la carpeta uploads

Como dije anteriormente, en esta carpeta se encuentran todas  las imágnes y archivos adjuntos que haz incluido en tus posts. Dicha carpeta se encuentra normalmente en wp-content/uploads. Descarga la carpeta uploads y subela al WordPress que tienes en el nuevo servidor.

Descargar la carpeta de plugins

Los plugins son archivos que extienden más allá las funcionalidades de WordPress. Si utilizas algunos, entonces descarga la carpeta wp-content/plugins y súbela a tu nuevo WordPress.

Descargar tu theme

Que no se te olvide descargar y subir tu theme al nuevo hosting. Si haces todo y olvidas instalar el theme, cuando pongas a correr tu nuevo WordPress, no encontrará el theme y verás el navegador en blanco.

Descargar el archivo .htaccess

Si no lo haces, verás que los enlaces permanentes no funcionarán (cuando haces clic en un post aparecerá un error de página no encontrada). Si olvidaste hacerlo, existe un truco para solucionar el problema sin tener que descargar nada, simplemente vas a Opciones -> Enlaces Permanentes en el panel de administración de WordPress. Cambias la configuració a la configuración por defecto, guardas los cambios y luego cambias otra vez a la estructura de permalinks de tu gusto otra vez.

Además de lo anteriormente explicado, algunos plugins guardan datos en el archivo .htacces, por elemplo, Redirection. Por esto y por otras razones, lo más recomendable es mudar también el archivo .htaccess con tu instalación de WordPress.

Descargar el archivo wp-config

Tendrás que descargarlo y modificarlo para utilizar los nuevos datos de acceso a la base de datos en el nuevo servidor (usuario, contraseña, nombre de la base de datos).

Descargar la base de datos

Exporta la base de datos de tu blog de Worpdress a phpmyadmin y luego importala en el nuevo servidor. Para realizarlo, lee este tutorial.

Bueno, eso es todo, creo que no se me escapó ningún detalle, muy buena suerte.

Subir múltiples archivos de un tirón en tu plugin de Worpress con el cargador de WordPress

Cargador archivos WordPress

Hace apenas un par de días les presentamos una forma de integrar el cargador de WordPress en tu plugin o tema. Esa forma es perfecta para cuando queremos realizar algo tan sencillo como cambiar el logo del tema o sustituir una foto en el plugin. Pero ¿qué pasa si utilizamos esa técnica para subir imágenes a una extensa galería fotográfica?. El cargador de WordPress puede subir todas esas fotos de un tirón, pero el código que vimos no está optimizado para manejar esa cantidad de imágenes. Afortunadamente, después de pensar e investigar un poco he logrado una forma para obtener desde el cargador de WordPress todas las fotos que él sube.

Save attachment

El código que vimos anteriormente se queda igual, sólo tenemos que agregar un par de cosas. Lo primero que tenemos que hacer es agregar al código del plugin el filtro add_attachment, que es invocado cada vez que el cargador de WordPress sube un archivo y lo graba en la base de datos pots de WordPress. Así, cuando subimos múltiples archivos con el cargador de WordPress, cada vez que el plugin graba la información de uno de esos archivos en la base de datos podemos llamar una función que manejará lo que va a hacer con esa imagen.

add_action("add_attachment", "tu_función");

Obtener el ID del attachment

La información de los archivos es guardada en la tabla de posts de WordPress. En dicha tabla, los archivos se distinguen de los posts porque están marcados en el campo post_type como attachment. También se guarda en esta tabla otra información que nos interesa, como la url del archivo, que podemos averiguar con la función de WordPress wp_get_attachment_url. Este es el código de la función “tu_funcion” que llamamos cuando es invocado el filtro add_attachment:

function tu_funcion(){
global $wpdb;
$ultimopost = "SELECT ID FROM " . $wpdb->prefix . "posts ORDER by ID DESC";
$resultado = $wpdb->get_row($ultimopost);
//El id de la imagen guardada actualmente está en $resultado->ID. Podríamos utilizarlo, por ejemplo para guardarlo en una base de datos personalizada
$agregar = "INSERT INTO " . $wpdb->prefix . "tu_tabla (tucampo) VALUES ($query->ID)";
$resultado2 = $wpdb->get_row($agregar);
}

Y de esta forma logramos subir de una sola buena vez una gran cantidad de archivos a nuestro plugin o theme con el cargador de WordPress sin complicaciones.

Cómo utilizar el cargador de archivos de WordPress en tu Plugin o Tema

Wordpress uploader dialog

WordPress posee un excelente cuadro de diálogo cargador de media que es utilizado en las páginas del editor. ¿No sería exitante el poder utilizarlo para manejar las subidas de imágenes en un plugin o tema que estás desarrollando?

Es ridículamente simple implementarlo. Primero pon el siguiente código en la página de administración de tu plugin o tema. Esto de da un texto para la URL de la imagen, y un botón que abrirá el cuadro de diálogo del cargador de media.

<tr valign="top">
<th scope="row">Upload Image</th>
<td><label for="upload_image">
<input id="upload_image" type="text" size="36" name="upload_image" value="" />

<input id="upload_image_button" type="button" value="Upload Image" />
<br />Enter an URL or upload an image for the banner.
</label></td>
</tr>

Ahora necesitamos poner en cola algunos scripts y estilos. Para hacerlo incluimos el siguiente código en nuestro plugin o tema:

function my_admin_scripts() {
wp_enqueue_script('media-upload');
wp_enqueue_script('thickbox');
wp_register_script('my-upload', WP_PLUGIN_URL.'/my-script.js', array('jquery','media-upload','thickbox'));
wp_enqueue_script('my-upload');
}

function my_admin_styles() {
wp_enqueue_style('thickbox');
}

if (isset($_GET['page']) && $_GET['page'] == 'my_plugin_page') {
add_action('admin_print_scripts', 'my_admin_scripts');
add_action('admin_print_styles', 'my_admin_styles');
}

Necesitamos primero los scripts media-upload y thickbox, así también como jQuery, que ya está incluido. Necesitamos registrar nuestro propio archivo JavaScript, my-script.js, el cual manejará la funcionalidad del cargador de media. También necesitamos cargar la hoja de estilos de thickbox en la próxima función.

El bloque if (…) se asegura de que los scripts y estilos sólo serán incluidos si el usuario se encuentra en una página de administración específica. Si te fijas en la página de administración de tu plugin o tema, la URL debe mostrar una cadena ?page=un_nombre al final. Sustituye my_plugin_page por ese nombre.

Ahora para la parte que llama el cargador: el JavaScript. El siguiente código debe ser colocado en el archivo my-script.js que incluimos anteriormente.

jQuery(document).ready(function() {

jQuery('#upload_image_button').click(function() {
 formfield = jQuery('#upload_image').attr('name');
 tb_show('', 'media-upload.php?type=image&amp;TB_iframe=true');
 return false;
});

window.send_to_editor = function(html) {
 imgurl = jQuery('img',html).attr('src');
 jQuery('#upload_image').val(imgurl);
 tb_remove();
}

});

El primer evento click() abre un diálogo ThickBox cuando el botón “Upload Image” es cluiqueado, y carga la página del cargador dentro de él. También almacena el nombre del campo de entrada URL en una variable, para su posterior uso.

La segunda función sustituye la función send_to_editor() del media-upload. Cuando el botón “Insert into Post” es cliqueado en el diálogo del cargador, se llama esta función. Colecta la URL de la imagen que fue subida, la pasa al campo del formulario que la está esperando, y cierra el diálogo ThickBox.

Vía

Código Rewrite optimizado para mejorar la velocidad de carga de tu blog de WordPress

Un blog de WordPress acabado de instalar utiliza una estructura de urls no entendible por humanos y no amigable a los motores de búsqueda. Esta estructura necesita ser cambiada por una entendible por los visitantes y favorecida por los motores de búsqueda. Por ejemplo, es posible utilizar las direcciones URL que muestren la categoría y el título de la página como la URL, mezclar fechas, valores numéricos o información personalizada.

La regla más importante en Optimización para Motores de Búsqueda es utilizar el título de la página en la url. Todo lo demás es opcional y bajo el gusto del usuario.

WordPress genera un archivo .htaccess que contiene las directivas rewrite cuando se cambian vínculos permanentes (permalinks). A veces sucede que el archivo no puede ser creado o escrito, por lo que el usuario tiene que crear y editar el archivo htaccess de forma manual.

El código de WordPress que se utiliza no está optimizado. No impide, por ejemplo, verifiaciones de archivos y directorios innecesarias. JP Morgan en el foro mundial de Webmasters ha creado una mejor directiva rewrite que “arregla varios problemas que afectan el desempeño”.

Según JP el código modificado acelera el código .htaccess por lo menos un factor de dos “evitando las verificaciones de existencia de segundo paso en el index.php mismo, y evitando la prueba de existencia de recursos tales como archivos de imagen que, evidentemente, no necesitan ser manipulados por  WP. ”

Comenta el antiguo código de WordPress entre las etiquetas “Begin WordPress” y “End WordPress” y pega el siguiente código en tu archivo .htaccess con el nuevo código siguiente. Puede que sea necesario modificar los tipos de archivo (gif | jpg | php | ico | css | js). Estos deben contener la mayor cantidad de archivos requeridos. Podría tener sentido para incluir png, por ejemplo, en la lista.

# BEGIN WordPress
#
RewriteEngine on
#
# Unless you have set a different RewriteBase preceding this point,
# you may delete or comment-out the following RewriteBase directive
# RewriteBase /
#
# if this request is for "/" or has already been rewritten to WP
RewriteCond $1 ^(index\.php)?$ [OR]
# or if request is for image, css, or js file
RewriteCond $1 \.(gif|jpg|php|ico|css|js)$ [NC,OR]
# or if URL resolves to existing file
RewriteCond %{REQUEST_FILENAME} -f [OR]
# or if URL resolves to existing directory
RewriteCond %{REQUEST_FILENAME} -d
# then skip the rewrite to WP
RewriteRule ^(.*)$ - [S=1]
# else rewrite the request to WP
RewriteRule . /index.php [L]
#
# END wordpres 

Lo implementé en este blog y noté una mejora en la carga. Cuéntanos tu experiencia.

Vía

Publica tus posts de WordPress a distintas redes sociales automáticamente

crpost2pingfmCR Post to Ping.fm es un plugin de WordPress que utiliza el servicio ping.fm para publicar tus posts a las redes sociales que elijas en el servicio ping.fm.

Características:

1. Mensaje de ping personalizables
2. Ping en todas las categorías
3. Ping sólo en las categorías seleccionadas
4. Deshabilitar Ping en las categorías seleccionadas
5. Opción para permitir a Ping por cada vez que presiones el botón “Publicar”, o simplemente la primera publicación de ese post en particular
6. Opción de diferenciar redacción en la segunda publicación (basado en la opción anterior)

Este plugin es útil para toda persona que posea un blog y necesite una fuerte presencia en las redes sociales. Si te interesa este plugin, descrárgalo aquí.