Comandos SQL para dominar comentarios y referencias en WordPress

Si quieres, por el motivo que sea, aplicar el tercer grado a los comentarios y los pingbacks/tracbacks en todas tus entradas publicadas, en vez de ir una a una, puedes hacerlo mediante comandos SQL desde phpMyAdmin.

Aquí tienes una serie de comandos a ejecutar:

Borrar todos los comentarios spam de golpe:

SQL:
  1. DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam';

Abrir los comentarios en todas las entradas:

SQL:
  1. UPDATE wp_posts SET comment_status = 'open';

Cerrar los comentarios en todas las entradas:

SQL:
  1. UPDATE wp_posts SET comment_status = 'closed';

Abrir los comentarios en todas las entradas, solo para usuarios registrados:

SQL:
  1. UPDATE wp_posts SET comment_status = 'registered_only';

Abrir/cerrar comentarios antes de una fecha concreta:

SQL:
  1. UPDATE wp_posts SET comment_status = 'closed' WHERE post_date <'2009-01-01' AND post_status = 'publish';

Esta query puedes personalizarla (de hecho debes hacerlo) para cambiar el comment_status como open, closed, o registered_only, dependiendo de si los quieres abrir, cerrar o abrirlos solo para los usuarios registrados. También, por supuesto, cambiar la fecha.

Activar/desactivar pingbacks y trackbacks:

Para activarlos:

SQL:
  1. UPDATE wp_posts SET ping_status = 'open';

Para desactivarlos:

SQL:
  1. UPDATE wp_posts SET ping_status = 'closed';

Activar/desactivar antes de una fecha concreta:

SQL:
  1. UPDATE wp_posts SET ping_status = 'closed' WHERE post_date <'2009-01-01' AND post_status = 'publish';

Igual que en el caso de los comentarios, puedes cambiar el comment_status y la fecha.

Activar/desactivar comentarios, pingbacks y trackbacks:

Si lo tienes claro, puedes incluso cerrar (o abrir) comentarios, pingbacks y trackbacks todo a la vez. Para ello usarías esta query:

SQL:
  1. UPDATE wp_posts SET comment_status = 'open', ping_status = 'open' WHERE comment_status = 'closed' AND post_status = 'publish';

De nuevo, debes jugar con los comment_status y ping_status. Y si, de nuevo, queremos jugar con fechas y definir antes de que fecha activar o desactivar todos los comentarios, pingbacks y trackbacks, podemos hacer un cambio en la query para conseguirlo:

SQL:
  1. UPDATE wp_posts SET comment_status = 'closed', ping_status = 'closed' WHERE post_date <'2009-01-01' AND post_status = 'publish';


Jugando, de nuevo, con los "status" y la fecha.

¡Hala, apúntalo en favoritos, compártelo en Twitter, Facebook o donde más te guste!, estas cosas son para guardarlas y usarlas cuando se necesiten ¿no crees?

Como cambiar la clave de admin con una query SQL

Hemos visto varias maneras de recuperarnos del desastre (aparente) de perder la contraseña de usuario, no digamos si es la de administrador, pero aún quedan posibles soluciones, aun cuando perdiéramos el acceso FTP, y es recurrir a una query SQL.

Para ello deberíamos ejecutar el siguiente comando en la interfaz web de phpMyAdmin o desde la línea de comandos:

SQL:
  1. UPDATE wp_users SET user_pass = MD5( 'nueva-clave' ) WHERE user_login = 'nombre-usuario-admin';

Solo tienes que sustituir 'nueva-clave' por la contraseña nueva que quieres asignar y 'nombre-usuario-admin' por el nombre (username) del usuario administrador, por ejemplo "admin"

¿Te gustó este post? ¡Compártelo! Bitacoras.com TwitThis Facebook Meneame Google Bookmarks del.icio.us Live Technorati Ping.fm Wikio Turn this article into a PDF! E-mail this story to a friend! Print this article!

Cómo instalar WordPress localmente con WAMP (1)

Hoy veremos cómo instalar WordPress no en un servidor remoto, sino en nuestra propia computadora. Esto nos resultará ideal cuando tengamos que desarrollar temas, para disponer de la máxima rapidez de trabajo y no tener que estar subiendo archivos, o cuando nuestro site real esté en mantenimiento.

WAMP es el acrónimo para Windows, Apache, MySQL y PHP, y el software nos permitirá en efecto instalar todos estos elementos: un servidor Apache, una base de datos MySQL con la interface PHPMyAdmin y PHP sobre Windows (para Mac podemos usar XAMP; el proceso es muy similar).

Vamos primero a descargar la última versión de WAMP de su site oficial. Una vez la descarga termine, vamos a clicar en el icono para lanzar la instalación. Se nos abrirá esta ventana:

Image and video hosting by TinyPic

Clicamos sobre “Next” y llegamos a la siguiente:

Image and video hosting by TinyPic

Escogemos “I accept the agreement” y clicamos en “Next”. Llegaremos a esta página:

Image and video hosting by TinyPic

Por defecto, WAMP va a instalarse en el disco duro principal. Vamos a hacerlo así, salvo si tenemos alguna razón para hacerlo de otra forma. Clicamos en “Next” y llegamos aquí:

Image and video hosting by TinyPic

Marcamos la casilla “Create a Quick Launch icon” si queremos añadir un icono rápido hacia WAMP en la barra de inicio rápido de Windows, y marcamos también “Create a desktop icon” si queremos lo mismo en el escritorio. Luego, clicamos “Next”:

Image and video hosting by TinyPic

Esta página resume la configuración de instalación. Clicaremos en “Install” para lanzarla:

Image and video hosting by TinyPic

Esperamos que termine. Es posible que aparezca una ventana de seguridad pidiendo permiso para continuar, le decimos que sí.

Nos aparecerá entonces la siguiente pantalla:

Image and video hosting by TinyPic

Esta página nos permitirá configurar el servidor de e-mail, posibilitando eventualmente que las aplicaciones relacionadas con la función mail() de PHP envíen correos al exterior si permanecemos en línea al trabajar con WAMP. Dejamos los valores por defecto y seguimos. Le damos a “Next”:

Image and video hosting by TinyPic

Dejamos marcada la casilla para que WAMP se auto-ejecute y clicamos en “Finish”. ¡La instalación ha terminado!

Si todo va bien, veremos que el icono de WAMP en el área de notificación (donde el reloj del sistema) es blanco. Si está en rojo, los servicios (PHP, Apache) no están activados y tendremos que hacerlo manualmente, clicando con el botón izquierdo del ratón en el icono y navegando por el menú.

Si saliera el icono en amarillo, significa que WAMP está sólo funcionando parcialmente. En este caso, cerrad Skype, Messenger y otras aplicaciones que pudieran usar puertos de conexión a Internet y configurad vuestro firewall.

Veamos el menú en detalle:

Image and video hosting by TinyPic

  • Localhost: abre la página de bienvenida de WAMP en nuestro navegador.
  • phpMyAdmin: abre phpMyAdmin en nuestro navegador, para manejar nuestras bases de datos MySQL.
  • SQLiteManager: abre SQLIteManager en nuestro navegador, y nos permite manejar nuestras bases de datos SQLite.
  • www directory: permite abrir la carpeta que contiene los archivos de las web locales que vamos a construir.
  • Apache: permite configurar Apache.
  • PHP: permite configurar PHP.
  • MySQL: permite configurar MySQL.
  • Start All Services: activa todos los servicios.
  • Stop All Services: desactiva todos los servicios.
  • Restart All Services reinicia todos los servicios.
  • Put Online: permite que otros internautas accedan a nuestro servidor local.

Mañana, el resto de la instalación.

Como migrar usuarios de bbPress a WordPress

Cuando se habla de integrar WordPress y bbPress normalmente se parte de la idea de que ya dispones de una base de usuarios en tu WordPress y lo que pretendes es que una reciente instalación de bbPress permita que esos usuarios accedan a los foros con su mismos datos.

Hasta ahí bien, pero ¿y si lo que quieres es lo contrario?, si ya tienes una base de usuarios en bbPress y quieres que tengan acceso también a WordPress.

La cosa se complica pero siguiendo estos sencillos pasos puedes lograrlo:

  1. Accede a PHPmyAdmin y exporta la tabla 'bb_users' (si usas otro prefijo adaptas este paso a tu configuración) como fichero de Excel csv.
  2. Abre el fichero csv y elimina el usuario con el ID 1 que será el Admin, para así compartir el usuario.
  3. Renombra el archivo csv a algo como 'users.csv'.
  4. Sube el fichero 'users.csv' a la carpeta de tu tema activo en WordPress.
  5. Edita el fichero 'functions.php' de tu tema activo y añádele el siguiente código:
    PHP:
    1. global $wpdb;
    2. require ( ABSPATH . WPINC . '/registration.php' );
    3. $file_handle = fopen(TEMPLATEPATH . "/users.csv", "r");
    4. while (!feof($file_handle) ) {
    5.   $field = fgetcsv($file_handle, 1024);
    6.   $ID = $field[0];
    7.   $user_login = $field[1];
    8.   $user_pass = $field[2];
    9.   $user_nicename = $field[3];
    10.   $user_email = $field[4];
    11.   $user_URL = $field[5];
    12.   $user_registereddate("Y-m-d H:i:s", strtotime($field[6]));
    13.   $user_status = $field[7];
    14.   $display_name = $field[8];   
    15.   $adduser = "
    16.   INSERT INTO $wpdb->users
    17.     (ID, user_login, user_pass, user_nicename, user_email, user_URL, user_registered, user_status, display_name)
    18.   VALUES
    19.     ('$ID', '$user_login', '$user_pass', '$user_nicename', '$user_email', '$user_URL', '$user_registered', '$user_status', '$display_name')
    20.   ";
    21.   $results = $wpdb->query( $adduser );
    22.   $data = array(
    23.     "ID" => $ID,
    24.     "role" => 'subscriber'
    25.   );
    26.   wp_update_user($data);
    27. }
    28. fclose($file_handle);

  6. Guarda los cambios
  7. Lo que tienes es los usuarios de bbPress en WordPress. Entra y compruébalo.

  8. A partir de aquí sigues con la integración como vimos en este tutorial

Contenido exclusivo para suscriptores al Feed

¡Gracias por seguirnos a diario!. Premiamos tu fidelidad ofreciéndote habitualmente contenidos exclusivos. Hoy puedes descargar:

Clic aquí para iniciar la descarga Guía Domina tu Blog

¿Te gustó este post? ¡Compártelo! Bitacoras.com TwitThis Facebook Meneame Google Bookmarks del.icio.us Live Technorati Ping.fm Wikio Turn this article into a PDF! E-mail this story to a friend! Print this article!

Añadir código de idioma al RSS

rss traductor

En tu sitio no solo puedes definir el código de idioma general, normalmente UTF-8, sino que también puedes definir el idioma del feed RSS.

Hay tres maneras de conseguirlo, vamos a verlas …

1. Cambiar idioma de RSS en la base de datos

Para hacerlo de este modo debes acceder a PHPmyAdmin y cambiar el valor (option_name) rss_language, por ejemplo a es (tienes la tabla de valores aquí)

2. Cambiar idioma de RSS directamente con un hook

Si no quieres tocar la base de datos puedes añadir el siguiente código al fichero functions.php de tu tema (theme).

PHP:
  1. function update_rss_language() {
  2.     update_option( 'rss_language', 'es' );
  3. }
  4. add_action( 'admin_init', 'update_rss_language' );

3. Cambiar idioma de RSS en las opciones de Admin

Pero si quieres algo realmente elegante y sencillo, puedes incluso añadir una nueva opción al panel de Opciones -> Lectura de tu escritorio de WordPress.

Solo tienes que añadir el siguiente código al fichero functions.php de tu tema y en la nueva opción podrás indicar el código de idioma:

PHP:
  1. function rss_language_string() {
  2.     ?>
  3.     <input name="rss_language" type="text" id="rss_language" value="<?php form_option('rss_language'); ?>" class="regular-text" />
  4.     <span class="description"><?php _e('RSS soporta varios idiomas mediante el elemento de idiomas, que contiene un código corto que identifica el idioma habitual utilizado en el canal. Mira esta tabla para saber tu  <a href="http://www.rssboard.org/rss-language-codes#table">código de idioma</a>.'); ?></span>
  5.     <?php
  6. }
  7. function rss_language_admin_init() {
  8.     register_setting( 'reading', 'rss_language' );
  9.     add_settings_field( 'rss_language', __('Código de idioma RSS'), 'rss_language_string', 'reading');
  10. }
  11. add_action( 'admin_init', 'rss_language_admin_init' );

Lo que consigues es esto …

panel idioma rss

Como ves, hay varias maneras de hacerlo, tu eliges como.

¿Te gustó este post? ¡Compártelo! Bitacoras.com TwitThis Facebook Meneame Google Bookmarks del.icio.us Live Technorati Ping.fm Wikio Turn this article into a PDF! E-mail this story to a friend! Print this article!

Backup de WordPress

Secure Data

Bueno, ya sabemos que hay que hacer copia de seguridad con regularidad ¿no?. Lo que pasa es que hay veces que se nos olvida. Pero imagina que te cargas algo y no dispones de un backup reciente ¿a que duele?.

Principalmente, como hemos dicho en varias ocasiones, hay que hacer copia de seguridad – preferentemente – de dos cosas:

  • la base de datos, que es donde están las configuraciones y el contenido
  • la carpeta wp-content, donde están los plugins, los themes y los archivos que hayas subido.

Si dispones de acceso a phpMyAdmin en tu servidor puedes hacer backups muy fácilmente. PhpMyAdmin tiene una función de Exportar que hace copia de toda la base de datos, una tabla, lo que quieras.

Eso si, si tu base de datos es muy grande entonces deberías usar otra herramienta de backup, normalmente disponible en el lado del servidor, si tienes acceso a sistemas como CPanel o Plesk.

Por otro lado, para los más avanzados, puedes usar SSH, del que ya he hablado, y que una vez controlas facilita enormemente las copias de seguridad, y otras acciones.

Para hacer backup con SSH solo tienes que acceder con tus datos (normalmente los datos FTP), moverte en línea de comandos a la carpeta donde quieras hacer backup y, una vez ahí, ejecutar este comando:

mysqldump –opt -u dbuser -p dbname> dbname.sql

Con esto reemplazas el dbuser y dbname con el tuyo. Ahora solo queda comprimir el backup:

gzip -c dbname.sql>dbname.sql.gz

Una vez hecho esto ya queda menos, pero también puedes hacer los dos pasos anteriores en solo uno así:

mysqldump –opt -u dbuser -p dbname> dbname.sql | gzip > ficheroresultante.sql.gz

Ahora ya tienes hecho el backup de la base de datos. Si hiciste bien los pasos anteriores la tendrás en un zip y en SQL

Lo siguiente es comprimir la carpeta wp-content:

zip -r wp-content-backup-Dec-3.zip wp-content/

Esto pone todo lo que haya en wp-content dentro de un zip. El modificador '-r' es precisamente el que usamos para que “recoja” todas las subcarpetas.

Luego podemos subir el zip a la carpeta de backups, por ejemplo:

mv wp-content-backup-Dec-3.zip ../backups

Si hacemos esto de vez en cuando, y no te preocupes por los comandos, puedes copiarlos y pegarlos en la ventana de comandos, tendrás backup de tu sitio a buen recaudo.

¿Te gustó este post? ¡Compártelo! Bitacoras.com TwitThis Facebook Meneame Google Bookmarks del.icio.us Live Technorati Ping.fm Wikio Turn this article into a PDF! E-mail this story to a friend! Print this article!

Qué hacer si un plugin rompe tu WordPress

error acceso wordpress

La mayoría de las veces en que tras una actualización de WordPress tienes problemas con la administración de tu sitio es debido a que no desactivaste los plugins o alguno no es compatible con la nueva versión. También hay otras ocasiones en que una actualización de plugin, o la instalación de uno nuevo, te impide – por ejemplo – acceder a tu panel de administración.

Pues bien, si te encuentras en alguna de estas situaciones, o simplemente sospechas de los plugins como posibles culpables de un comportamiento erróneo de WordPress, puedes desactivar los plugins de alguna de estas maneras:

Desactiva el plugin

Si puedes acceder al panel de admin simplemente ve desactivando plugins hasta que la situación vuelva a la normalidad. En ocasiones será interesante que desactives “Gears” y la caché, si estaban activos, para que se vean los cambios.

Renombra el plugin por FTP

Si no puedes acceder al panel de admin accede a tu servidor por FTP y renombra la carpeta del plugin “sospechoso” o incluso la carpeta entera de plugins, por ejemplo a ‘plugins_no‘. Con esto tu sitio debería funcionar correctamente y poder acceder al panel de admin, o sino buscar otro posible culpable de la situación anómala.

Luego crea una nueva carpeta de plugins y ve instalando/activando los plugins que necesites hasta encontrar el culpable.

¡Ah, si! ten en cuenta que si tu theme usa funciones de los plugins es bastante probable que se rompa por este motivo.

Borra el plugin por FTP

Esta es una variante del método anterior, y normalmente innecesaria pues con el anterior sistema consigues lo mismo.

Desactiva plugins desde PHPmyAdmin

Este es un método bastante poco corriente, pero que te puede salvar de alguna situación desagradable si no tuvieras acceso a tu panel de admin ni por FTP (por ejemplo, desde un ordenador compartido).

Accede vía web a PHPmyAdmin (los datos te los habrá facilitado tu proveedor de hosting nada más contratar el alojamiento). Luego elige (haz clic) en la base de datos que use WordPress y navega hasta la tabla “wp-options”. Busca la columna “active_plugins” y edítala. Dentro del campo “options_value” encontrarás algo parecido a esto:

a:31:{i:1;s:19:"akismet/akismet.php";
i:2;s:23:"all_in_one_seo_pack.php"i:6;s:37:

Esas líneas representan los plugins activos de tu WordPress. Bórralas todas y guarda, esto desactivará todos los plugins.

Y nada más, si sabes otro modo de hacerlo te toca.

¿Te gustó este post? ¡Compártelo! Bitacoras.com TwitThis Facebook Meneame Google Bookmarks del.icio.us Live Technorati Ping.fm Wikio Turn this article into a PDF! E-mail this story to a friend! Print this article!

Guía de optimización de WordPress (II)

Continuamos con la Guía de optimización de WordPress dedicada en este segundo capítulo a la optimización de la Base de Datos.

Con los siguientes ajustes conseguiremos reducir el tamaño de nuestra base de datos. Pero antes, no te olvides de realizar un backup.

1. Eliminar las tablas que no se utilizan.

Muchos plugins crean tablas pero éstas no se borran al desinstalarlos. Generalmente, para desintalar un plugin basta con desactivarlo y borrar sus archivos del servidor. Sin embargo, sus tablas pueden permanecer en la Base de Datos.

Para borrar una tabla, ir al administrador de MySQL, pinchar en el enlace correspondiente a la base de datos en la columna de la izquierda y seleccionar la tabla en cuestión. Finalmente, pinchar en la opción “Eliminar” de la columna “Acción”. O marcar la tabla y elegir la opción dentro del desplegable que dice “Para los elementos que están marcados”.

¡Cuidado! esta operación es arriesgada.

2. Suprimir el histórico de revisiones.

Desde la versión 2.6, WordPress permite mantener un histórico de modificaciones de los posts. Esta posibilidad se puede eliminar incluyendo la siguiente instrucción en el archivo wp-config.php:

define(’WP_POST_REVISIONS’, false);

Pero si eso no se ha utilizado, desde phpMyAdmin se puede ejecutar una consulta para borrar todos los posts cuyo tipo sea ‘revision’. Para ello, elegir la tabla wp-posts en la columna de la izquierda y pinchar en la pestaña “SQL”, escribiendo a continuación la siguiente query y pinchando en “Ejecutar”:

DELETE FROM wp_posts WHERE post_type = “revision”;

3. Optimizar la Base de Datos.

Existe una función específica para optimizar la tablas. Solamente hay que marcar todas las tablas y seleccionar la opción “Optimizar” en el desplegable que dice “Para los elementos que están marcados”.

Es muy recomendable realizar estas operaciones a menudo pues redundan no solo en el rendimiento de la administración sino en el funcionamiento del blog.

E-mail this story to a friend!
Bitacoras.com
Twitter
del.icio.us
Facebook
Google Bookmarks
BarraPunto
Meneame
Wikio
Ping.fm
Technorati

También puedes leer Weblog Magazine, mi blog en ABC.es

Y estoy en Twitter, Facebook y Tumblr.

Optimiza WordPress

optimizar

WordPress, desde las versión 2.6, incorporó las revisiones de artículos, una utilidad interesante para blogs colaborativos (o usuarios olvidadizos) pero inútil para la mayoría de la gente que usa WordPress. Además, son paja en nuestra base de datos, llenándola de información innecesaria que solo ocupa un espacio precioso y puede llegar a ralentizar la carga de nuestro sitio.

Ya dimos un par de soluciones para mantener a raya las revisiones de posts, tanto con plugin como sin el, pero hay un plugin que, además de esta característica, incluye otras funcionalidades realmente interesantes para optimizar WordPress.

WP Optimize es una verdadera caja de herramientas para mantener en buena salud WordPress, lo que nos ofrece es lo siguiente:

  • Borrar las revisiones de posts existentes
  • Borrar todos los comentarios de la cola de spam
  • Borrar todos los comentarios sin aprobar
  • Renombrar un nombre de usuario, en concreto el usuario ‘admin', ese que por defecto WordPress no deja renombrar, y ya he dicho en mas de una ocasión que es un riesgo de seguridad.
  • Lanzar comandos de optmización de MySql en tu base de datos sin tener que acceder a phpMyAdmin.
  • Muestra estadísticas de las tablas de la base de datos.

wp-optimize

Como ves ofrece características bastante interesantes.

¿Te gustó este post? ¡Compártelo!

Bitacoras.com
TwitThis
Facebook
Google
del.icio.us
Live
StumbleUpon
Technorati
Wikio
Tumblr
E-mail this story to a friend!
Print this article!
Ping.fm

CiberPrensa es uno de los blogs de referencia sobre Web 2.0, blogging y la evolución de los medios hacia el mundo digital. Miles de artículos, guías y opinión sobre actualidad, tecnología e Internet.

Promociona tu web con BetaBlocks (www.betablocks.com).

Cómo suprimir las revisiones de la base de datos

Las revisiones son las copias de seguridad de los históricos de cada entrada que WordPress realiza automáticamente y aparecen en la parte inferior del editor de entradas. Aunque esta funcionalidad es muy práctica, sobre todo cuando se trata de un blog con varios redactores, puede ser también una carga muy pesada para el motor de la base de datos.

Para eliminar todas las revisiones de un blog, accede a la base de datos y ejecuta la siguiente sentencia SQL:

DELETE FROM `wp_posts` WHERE `post_type` = "revision"

Antes de hacerlo, recuerda hacer una copia de seguridad de la BBDD.

Vía WordPress-Tutoriel