Posted by planetawordpress on abril 24, 2012

Si tienes una configuración cerrada de WordPress, con una serie de plugins que has modificado o que no quieres que se modifiquen porque, simplemente, funcionan, seguro que no quieres que nadie actualice esos plugins.
Es más, lo ideal sería incluso evitar la comprobación de actualización de los plugins.
Pues nada, solo tienes que añadir este código a tu plugin de funciones o fichero functions.php de tu tema activo:
// Desactivar comprobación de actualización de plugins
remove_action( 'load-update-core.php', 'wp_update_plugins' );
add_filter( 'pre_site_transient_update_plugins', create_function( '$a', "return null;" ) );
Guardas los cambios y ya está, tus plugins seguirán ahí mientras los necesites, sin pedirte actualizaciones. Eso si, ten en cuenta que antes de actualizar WordPress a una versión nueva deberás comprobar si hay versiones nuevas o, al menos, si las versiones actuales de los plugins son compatibles, en caso contrario deberías quitar el código y actualizar los plugins que quieras actualizar.
Por otra parte, si solo quieres no actualizar algún plugin concreto, pues este truco afecta a todos, puedes decidir que algún plugin no se actualice.
Código encontrado en wp snippets
Posted by planetawordpress on abril 13, 2012

Seguro que te ha pasado más de una vez, que creas una estructura jerárquica de páginas en la que la página superior o madre en realidad no es más que un texto, que en realidad no lleva a ninguna parte. Por ejemplo, haces una página llamada “Servicios” de la que cuelgan como subpáginas “Diseño” y “Formación“, pero en “Servicios” no hay nada, es una sola estructura de navegación.
Lo que queda fatal es, en estos casos, que alguien haga clic en la página superior y le lleve a una publicación vacía, sin contenido, teniendo que volver a navegar por el menú para acceder a “algo”.
Un modo de evitar este fallo de usabilidad es que el menú no enlace a nada como ya expliqué, pero si queremos darle una vuelta de tuerca y ofrece algo ¿qué mejor que un listado de las subpáginas, con un extracto que muestre su contenido?.
Para conseguirlo debes editar el loop del archivo ‘page.php‘ de tu tema con este código:
<? $pageChildren = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_parent = ".$post->ID." AND post_type = 'page' ORDER BY menu_order", 'OBJECT'); ?>
<? if ( $pageChildren ) : foreach ( $pageChildren as $pageChild ) : setup_postdata( $pageChild ); ?>
<!-- loop stuff here -->
<? endforeach; endif; ?>
Pero si tienes páginas que si tengan contenido entonces tendrías que añadirle un condicional más para que no muestre títulos y extractos de subpáginas en ese caso, de este modo:
<? if (is_page('3')) { } else { // if its page 3 then show nothing ?>
<? $pageChildren = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_parent = ".$post->ID." AND post_type = 'page' ORDER BY menu_order", 'OBJECT'); ?>
<? if ( $pageChildren ) : foreach ( $pageChildren as $pageChild ) : setup_postdata( $pageChild ); ?>
<!-- loop stuff here -->
<? endforeach; endif; } ?>
Ahora bien, la opción más segura será siempre crear una plantilla de página personalizada cuyo loop tenga el primer código y elijas esa plantilla para tus páginas “madre”.
Estupendo truco de The WordPress Guru
Posted by planetawordpress on marzo 20, 2012

Hay un modo de fidelizar a los usuarios registrados y, mediante el mismo método, animar a los que no lo están a que se registren o realicen otro tipo de acciones.
Para ello solo hay que, primero, identificar si el usuario está o no registrado, vamos, si ha accedido como usuario …
Con esa pequeña comprobación ya tenemos todo el código necesario para mostrar mensajes personalizados, a usuarios registrados y a los que no lo estén.
Añade este código en el lugar que quieras de tu tema activo:
<?php
if ( is_user_logged_in() ) {
echo '¡Bienvenido de nuevo!';
} else {
echo '¡Hola!, parece que no estás registrado, aún estás a tiempo de <a href="/wp-register.php">hacerlo</a>.';
};
?>
Un buen sitio sería en single.php, aunque también puede quedar bien en portada en la barra lateral, y mucho mejor si le añades un poco de estilo mediante CSS, para distinguirlo del resto del contenido.
Posted by planetawordpress on marzo 15, 2012

En ocasiones el buscador interno de WordPress se hace demasiado poco útil, y no es que lo haga mal, pero no es todo lo específico que podría ser, en según que momentos.
Una posible necesidad, si te ha surgido, sería que el buscador interno de WordPress solo realice búsquedas en los títulos, que es de lo que normalmente se acuerda el usuario tipo.
Si es tu caso puedes modificar el comportamiento por defecto del buscador interno de WordPress. Solo hay que añadir este código a tu plugin de funciones o al archivo functions.php de tu tema activo:
//Buscar solo en títulos
function __search_by_title_only( $search, &$wp_query )
{
if ( empty($search) )
return $search; // deja de procesar si no hay término alguno en la query
$q =& $wp_query->query_vars;
// wp-includes/query.php line 2180 (en version 3.3)
$n = !empty($q['exact']) ? '' : '%';
$searchand = '';
foreach( (array) $q['search_terms'] as $term ) {
$term = esc_sql( like_escape( $term ) );
$search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')";
$searchand = ' AND ';
}
$term = esc_sql( like_escape( $q['s'] ) );
if ( empty($q['sentence']) && count($q['search_terms']) > 1 && $q['search_terms'][0] != $q['s'] )
$search .= " OR ($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')";
if ( !empty($search) ) {
$search = " AND ({$search}) ";
if ( !is_user_logged_in() )
$search .= " AND ($wpdb->posts.post_password = '') ";
}
return $search;
}
add_filter( 'posts_search', '__search_by_title_only', 10, 2 );
Guardas los cambios y ya lo tienes. Ahora solo hará las búsquedas en los títulos de tus entradas.
Posted by planetawordpress on marzo 4, 2012
Si no conoces la aplicación Panic CODA seguramente te estás perdiendo la que quizás sea el mejor software que existe para un programador web.
De hecho, hay desarrolladores web que se han pasado a Mac “solamente” para usar CODA. Y no es una locura, en realidad hay muchas razones para pasarse a Mac pero usar CODA es una de ellas, y poderosa. Pero bueno, que no se trata de hacer proselitismo de Mac o CODA.
Lo que quiero compartir contigo hoy es un fichero de descarga que permite usar la sintaxis de WordPress en CODA, para que identifique los códigos de tus temas y plugins WordPress, sus funciones en concreto, y te permite cosas como el autocompletado de sintaxis y esas cosas maravillosas que hace CODA.
Para tener esta funcionalidad solo tienes que hacer esto:
- Descargar este archivo:
Modo WordPress para Panic CODA v.1.0 (230.65 kB )
- Descomprimir el zip
- Copiar la carpeta descomprimida llamada
PHP-HTML-WP.mode en la carpeta ~/Library/Application Support/Coda/Modes/
- Abre un archivo PHP o de WordPress y carga el modo de sintaxis en CODA desde el menú “Text -> Syntax Mode -> PHP-HTML-WP“
- Opcional: Si quieres que este modo sea la sintaxis por defecto, en el panel del Editor, en la venta de preferencias, elige el modo “PHP-HTML-WP” como tipo de archivo por defecto
Ahora CODA ya identificará las funciones WordPress, facilitándote la vida como desarrollador de WordPress, como ya hacía con PHP, HTML o CSS, por ejemplo.

Encontrado en HitchHackers
Posted by planetawordpress on marzo 1, 2012

Desde hace varias versiones que WordPress puede mostrar en tu tema imágenes destacadas pero ¿qué pasa si no usas ese sistema?, o si simplemente tu tema no soporta imágenes destacadas.
La solución sería un código que revise tu contenido y, si encuentra una imagen, la muestre en tu sitio.
Sería una cosa así:
// Empieza el Loop
<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>
<?php
// Definimos el contenido de la entrada a una variable
$szPostContent = $post->post_content;
// Defininimos el patrón a buscar
$szSearchPattern = '~<img [^\>]*\ />~';
// Ejecutamos preg_match_all para obtener todas las imágenes y guardar los resultados en $aPics
preg_match_all( $szSearchPattern, $szPostContent, $aPics );
// Contamos los resultados
$iNumberOfPics = count($aPics[0]);
// Comprobación de si hay al menos 1 imagen
if ( $iNumberOfPics > 0 )
{
// Ahora hacemos lo que sea con las imágenes
// En este ejemplo se muestran las imágenes
for ( $i=0; $i < $iNumberOfPics ; $i++ ) {
echo $aPics[0][$i];
};
};
endwhile;
endif;
?>
// ...termina el loop, etc
En el código anterior, una vez mostramos las imágenes es bastante probable que quieras también mostrar el contenido ¿no?. Vale, pues el problema es que si usamos la función the_content(); las imágenes se volverán a mostrar. Para resolver esta puñetita solo hay que hacer un rodeo para quitar las imágenes, y mostrar solo el resto del contenido:
// Esta vez remplazamos/quitamos las imágenes del contenido
$szDescription = preg_replace( $szSearchPattern, '' , $szPostContent);
// Aplicamos filtros para que se muestre bien el contenido
$szDescription = apply_filters('the_content', $szDescription);
// Mostramos el contenido
echo $szDescription;
¡Y ya está!
Esta virguería la creó Matt Varone.
Posted by planetawordpress on diciembre 31, 2011

A ninguno se nos escapa que WordPress es un CMS que se actualiza a cada necesidad o vulnerabilidad descubierta. Mediante las actualizaciones de seguridad – a pesar de que a algunos les moleste andar actualizando cada dos por tres – mantenemos WordPress seguro y al día.
Pero hay veces en que algunos fallos tardan en acometerse por parte del equipo de desarrollo, y es aquí donde entra Hotfix.
Este plugin es una especie de parcheador de fallos, que mantiene tu WordPress seguro y al día hasta que salga la próxima versión estable de WordPress o actualización que solucione el fallo en cuestión.
Su uso es sencillo: lo instalas, lo activas y funciona solo, aplicando los parches necesarios para mantener tu WordPress a tono.
Si lo instalas ahora, y dependiendo de tu versión de WordPress instalada, lo que soluciona es lo siguiente:
- WordPress 3.3
- Evita que los estilos de plugins y temas se infiltren en el Escritorio
- Soluciona un fallo para servidores sin soporte preinstalado de JSON
- WordPress 3.2
- Incluye soporte de JSON para configuraciones PHP extrañas
- WordPress 3.1.3
- Soluciona un fallo que hace que post_status funcione mal si se pasa un array
- WordPress 3.1
- Soluciona un fallo que provoca algunas manipulaciones en queries de taxonomías (como al excluir categorías), y que hace que no funcionen como deberían.
- WordPress 3.0.5
- Evita que KSES muestre imágenes recortadas y fallos HTML en los comentarios del Administrador/Editor.
Creo que no hace falta decir que si no estás seguro de necesitarlo mejor no lo instales.
Posted by planetawordpress on diciembre 18, 2011

Si quieres ofrecer un formulario de acceso a tu sitio WordPress, pero no te gusta usar el widget Meta, o tu tema no trae una plantilla de página al efecto, puedes preparar tu propio shortcode que, insertado en entradas o páginas, permitirá acceder a tu sitio de un modo totalmente integrado en tu tema.
Para ello solo tienes que añadir un pequeño código …
Solo son 2 pasos:
- Abres el fichero
functions.php de tu tema activo y añades lo siguiente:
//Shortcode para login donde quieras
function ayudawp_formulario_login_shortcode() {
if ( is_user_logged_in() )
return '';
return wp_login_form( array( 'echo' => false ) );
}
function ayudawp_add_shortcodes() {
add_shortcode( 'ayudawp_formulario_login', 'ayudawp_formulario_login_shortcode' );
}
add_action( 'init', 'ayudawp_add_shortcodes' );
Guardas los cambios.
- Añades el nuevo
shortcode en cualquier parte de una entrada o página:
[ayudawp-formulario-login]
Y ya lo tienes. ¡Que lo disfrutes!
Posted by planetawordpress on diciembre 16, 2011

Añadir una extensión a la URL de las entradas en WordPress, aunque supongo que ya lo sabes, es tan simple como ir a ‘Ajustes -> Enlaces permanentes‘, ahí eliges la opción de ‘Estructura personalizada‘ y pones /%postname%.html o /%postname%.php, lo que más te guste.
Ahora bien, esta configuración no afecta a las páginas, que quedarán del tipo /%postname%, más feúchas si lo quieres así.
Pero bueno, ya sabes que todo tiene solución sencilla …
Para ello nos valdremos, para no liarnos, de un par de plugins a elegir:
Y no hay nada que hacer, instalas el que necesites, lo activas y ya lo tienes. Creo que huelga decirlo pero por si acaso solo comentar que no funcionan bien si instalas ambos al mismo tiempo.
Simple y efectivo.
Ha sido un placer
Posted by planetawordpress on noviembre 17, 2011
Vale que es un poco raro el titular pero es que más o menos eso es lo que ofrece Instant WordPress, una aplicación para Windows que permite una instalación de WordPress autoejecutable, o algo así.
Y si ayer veíamos como instalar WordPress sin MySQL hoy damos un paso adelante ¿no?
Lo que hace es, a través de un sencillo proceso de instalación (vale, si, hay que instalar algo, pero no WordPress), poner a tu disposición un WordPress listo para usar de manera local, sin que tengas que hacer instalaciones en tu ordenador de PHP, MySQL o incluso Apache (en realidad si los instala pero al estilo “mobile”). De hecho puedes instalar el WordPress en cualquier carpeta y, si me apuras, incluso en un pendrive.
Una vez instalado se me ocurre que puede estar muy bien para llevarlo en un disco externo, o un pendrive, y hacer pruebas o muestras a clientes, instalando plantillas, plugins, haciendo pruebas de desarrollo, lo que quieras.
Lo que no sirve es para instalar tu web, pero seguro que encuentras mil y una utilidades para Instant WordPress
Visto en Wwwhatsnew