Apunte etiquetado WordPress

WordPress: Protege tu blog de solicitudes de URL maliciosas

Crea un archivo de nombre blockbadqueries.php y copia el siguiente código:

<?php
/*
Plugin Name: Block Bad Queries
Plugin URI: http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/
Description: Protect WordPress Against Malicious URL Requests
Author URI: http://perishablepress.com/
Author: Perishable Press
Version: 1.0
*/
global $user_ID; if($user_ID) {
  if(!current_user_can('level_10')) {
    if (strlen($_SERVER['REQUEST_URI']) > 255 ||
      strpos($_SERVER['REQUEST_URI'], "eval(") ||
      strpos($_SERVER['REQUEST_URI'], "CONCAT") ||
      strpos($_SERVER['REQUEST_URI'], "UNION+SELECT") ||
      strpos($_SERVER['REQUEST_URI'], "base64")) {
        @header("HTTP/1.1 414 Request-URI Too Long");
	@header("Status: 414 Request-URI Too Long");
	@header("Connection: Close");
	@exit;
    }
  }
}
?>

Luego sube el archivo al directorio wp-content/plugins y activa el plugin.

Fuente: WordPress plugin: Protect your blog from malicious URL Requests

Robots.txt: WordPress, Magento, Drupal y Joomla

Puede ser difícil saber que directorios restringir y cuales permitir a los motores de búsquedas. Esta es una pequeña guía de referencia de robots.txt para los CMS mas populares.

Dependiendo del CMS que estés utilizando, todo lo que tienes que hacer es copiar el texto en un archivo robots.txt y subirlo a tu servidor.
Leer más »

WordPress: actualización 2.9.2

Se recomienda actualizar WordPress a la versión 2.9.2. Elimina el problema en el que un usuario registrado como autor, pueda ver los artículos en papelera de otros.

Fuente: WordPress Blog

WordPress: Cómo eliminar el “privado” y “protegido” del título de la entrada

Cada vez que se define una entrada específica sea como privada o protegida por contraseña, WordPress agrega automáticamente “privado” o “protegida” al título de la entrada. Para eliminarlo, solo debe agregar el siguiente código al archivo functions.php:

function the_title_trim($title) {
	$title = attribute_escape($title);
	$findthese = array(
		'#Protected:#',
		'#Private:#'
	);
	$replacewith = array(
		'', // What to replace "Protected:" with
		'' // What to replace "Private:" with
	);
	$title = preg_replace($findthese, $replacewith, $title);
	return $title;
}
add_filter('the_title', 'the_title_trim');

Fuente: wprecipes

WordPress para iPhone 2.2

Ya está disponible la nueva versión de WordPress para iPhone con 3 importantes mejoras:

  • Responder a comentarios
  • Edición de comentarios
  • Resaltado de comentarios pendientes
WordPress para iPhoneWordPress para iPhoneWordPress para iPhoneWordPress para iPhoneWordPress para iPhoneWordPress para iPhone

Cómo eliminar automáticamente el nofollow de sus post

Copia el siguiente código y pégalo en el archivo functions.php de tu tema. Una vez que guardes el archivo de archivo, el atributo rel = "nofollow" será eliminado.

function remove_nofollow($string) {
	$string = str_ireplace(' rel="nofollow"', '', $string);
	return $string;
}
add_filter('the_content', 'remove_nofollow');

Vía: WpRecipes

Rechazar automáticamente los comentarios spam en tu blog WordPress

Agrega el siguiente código a tu archivo functions.php

function in_comment_post_like($string, $array) {
	foreach($array as $ref) { if(strstr($string, $ref)) { return true; } }
	return false;
}
function drop_bad_comments() {
	if (!empty($_POST['comment'])) {
		$post_comment_content = $_POST['comment'];
		$lower_case_comment = strtolower($_POST['comment']);
		$bad_comment_content = array(
			'viagra',
			'hydrocodone',
			'hair loss',
			'[url=http',
			'[link=http',
			'xanax',
			'tramadol',
			'russian girls',
			'russian brides',
			'lorazepam',
			'adderall',
			'dexadrine',
			'no prescription',
			'oxycontin',
			'without a prescription',
			'sex pics',
			'family incest',
			'online casinos',
			'online dating',
			'cialis',
			'best forex',
			'amoxicillin'
		);
		if (in_comment_post_like($lower_case_comment, $bad_comment_content)) {
			$comment_box_text = wordwrap(trim($post_comment_content), 80, "\n  ", true);
			$txtdrop = fopen('/var/log/httpd/wp_post-logger/nullamatix.com-text-area_dropped.txt', 'a');
			fwrite($txtdrop, "  --------------\n  [COMMENT] = " . $post_comment_content . "\n  --------------\n");
			fwrite($txtdrop, "  [SOURCE_IP] = " . $_SERVER['REMOTE_ADDR'] . " @ " . date("F j, Y, g:i a") . "\n");
			fwrite($txtdrop, "  [USERAGENT] = " . $_SERVER['HTTP_USER_AGENT'] . "\n");
			fwrite($txtdrop, "  [REFERER  ] = " . $_SERVER['HTTP_REFERER'] . "\n");
			fwrite($txtdrop, "  [FILE_NAME] = " . $_SERVER['SCRIPT_NAME'] . " - [REQ_URI] = " . $_SERVER['REQUEST_URI'] . "\n");
			fwrite($txtdrop, '--------------**********------------------'."\n");
			header("HTTP/1.1 406 Not Acceptable");
			header("Status: 406 Not Acceptable");
			header("Connection: Close");
			wp_die( __('bang bang.') );
		}
	}
}
add_action('init', 'drop_bad_comments');

Nota: Si usas el plugin Antivirus, la siguiente línea de código se va a mostrar como sospechosa:

$txtdrop = fopen('/var/log/httpd/wp_post-logger/nullamatix.com-text-area_dropped.txt', 'a');

Vía: WpRecipes

¿Cómo usar jQuery 1.4 en WordPress?

Copia el siguiente código en tu archivo functions.php

if( !is_admin()){
   wp_deregister_script('jquery');
   wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"), false, '');
   wp_enqueue_script('jquery');
}

Vía: Sean Hayes

WordPress μ 2.9.1

Ya está disponible WordPress μ 2.9.1

Descarga: WordPress MU 2.9.1 (zip) | WordPress MU 2.9.1 (.tar.gz)

Vía: WordPress μ

Redirecciones 301

Se utiliza un Error 301 cuando la URL cambia, para que:

  • Los visitantes vean la nueva dirección.
  • Los buscadores actualicen a tu nueva dirección.
  • Evitar contenido duplicado en la red.

Métodos

Mediante un fichero .htaccess

Redirect permanent / http://nuevaurl

Redirección completa

RewriteEngine on
RewriteCond %{HTTP_HOST} !^nuevaurl.com$ [NC]
RewriteRule ^(.*)$ http://nuevaurl.com/$1 [R=301,L]

Mediante el uso de PHP

<?php
 Header( "HTTP/1.1 301 Moved Permanently" );
 Header( "Location: http://nuevaurl" );
 ?>