SQL: Borrar los tags sin usar en WordPress

Cuando se tiene un blog con muchas entradas, quizás miles, nuestra base de datos obtiene un gran tamaño por culpa de muchos datos inservibles, alguno de esos datos son los tags que se van creando en algunos post pero que no son utilizados. Recordemos pues que al eliminar un post no se eliminan los tags que se crearon para este.

En fin, cuando son muchos los tags que no son usados ir al panel y borrar uno por uno es una tarea muy tediosa. Por suerte en los foros de wordpress alguién posteó la solución para eliminar todos los tags inservibles usando una consulta sql y así eliminarlo todo con un sólo clic desde el phpMyAdmin o donde puedan realizar la consulta.

Recuerda sacar siempre una copia de seeguridad antes de realizar estos cambios.

Eliminar con una consulta sql todos los tags sin usar de wordpress:

DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE COUNT = 0);

Eliminar todos los tags restantes que pueden haberse quedado en la tabla wp_term_relationships

DELETE FROM wp_term_relationships WHERE term_taxonomy_id NOT IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);

Yo ya lo usé y pude quitar mi DB unos mil tags inservibles.

Posted in wordpress | Tagged , | Leave a comment

Cambiar el logo en el login de wp-admin sin plugins

Cuando nos vamos a logear en wordpress visitamos el wp-admin (por ejemplo en este sitio tengo que ir a braulioaquino.net/wp-admin) y ahí vemos el logo de WordPress, pero si estamos creando un sitio con mayor estilo y queremos agregar nuestro logo ahí usamos unas cortas líneas en lugar de seguir llenándonos de plugins.

¿Cómo hacerlo? Pues en el archivo function.php agrega lo siguiente

function logo_wpadmin() {
	echo '<style type="text/css">
		h1 a { background-image:url('.get_bloginfo('template_directory').'/img/logo.jpg); }
	</style>';
}
add_action('login_head', 'logo_wpadmin');

Listo, con eso ya tienes tu logo en la página de acceso de wordpress, claro está que debemos cambiar el img/logo.jpg por el logo que quieras y al ser un css puedes también modificarle tamaños, bordes o lo que quieras.

Esto es útil sobretodo cuando tienes un sitio con un pagina de login logout en la portada y para recuperar la contraseña tienes que acceder a wp-login.php?action=lostpassword quitándole la armonía al sitio al ver otro logo.

Posted in wordpress | Tagged , | Leave a comment

Quitar el .php de las url con .htaccess

Porque hay cosas que simplemente puedes crear con algunos archivos .php sin usar wordpress u otras cosas raras.

Para hacer que en nuestro sitio no se vea .php al final de sus direcciones, y sin tener que crear carpetas para cada archivo, lo mas sencillo es editar nuestro .htaccess con lo siguiente:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ $1.php [L,QSA]

El archivo .htaccess se encuentra en la raiz de tu directorio, si no lo encuentras puedes crearlo. Con esto tendrás urls mas amigables así puedes usar braulioaquino.net/ego en lugar de braulioaquino.net/ego.php

Posted in tip | Tagged | Leave a comment

Enlace de Borrar Post desde la portada

Si queremos eliminar un post de WordPress lo normal es que entremos al panel de administrador, veamos la lista de post y demos clic en Enviar a papelera, hasta ahí todo bien, pero si tienes un blog con demasiados posts y quieres eliminar algunos por su contenido no vas a entrar a cada uno, darle a editar y enviar a papelera. Es una tarea larga.

¿La solución? Un enlace de “Enviar a papelera” que sea visible sólo para los administradores en cada post.

Primero, colocar la siguiente función en nuestro function.php

<?php function wp_delete_post_link($link = 'Eliminar post', $before = '', $after = '') {
	global $post;
	if ( $post->post_type == 'page' ) {
		if ( !current_user_can( 'delete_pages', $post->ID ) )
			return;
	} else {
		if ( !current_user_can( 'delete_posts', $post->ID ) )
			return;
	}
	$advertencia = "&iquest;Est&aacute;s seguro de querer eliminar ".get_the_title($post->ID)." ?";
	$delLink = wp_nonce_url( get_bloginfo('wpurl') . "/wp-admin/post.php?action=delete&post=" . $post->ID, 'delete-post_' . $post->ID);
	$link = "<a target='_blank' onclick='return confirm(\"" . $advertencia ."\")'  href='" . $delLink . "' title='Delete' />".$link."";
	echo $before . $link . $after;
} ?>

Segundo, colocar el llamado a la función donde quieres que aparezca el enlace: single, index, loop, donde quieras.

<?php wp_delete_post_link('Eliminar post', '<p>', '</p>'); ?>

Muy útil para aquellos blogs que se alimentan de Feeds RSS o los que tienen el registro de autores libre.

Posted in wordpress | Tagged , , | Leave a comment