WP Themes Free es un directorio de temas para WordPress, para aquellos que no saben diseñar o no saben pasar un diseño a WordPress y quieren salir de los temas que ofrece por defecto.
Se pueden ver los últimos temas añadidos, los más populares, los más vistos, los más testeados, los más valorados y los más votados. A parte, estan organizados por categorÃas como adultos, negocios, entretenimiento… y organizados por propiedades: número de columnas, color, … WP Themes Free
VÃa / Digg
La sorpresa que me he llevado cuando Dinahosting, en el hosting compartido, no permite el uso de la función mail si no le indicas en las cabeceras un email registrado en el dominio. Algo así:
$to = 'destinatario@dominio.com';
$subject = 'Prueba';
$email_text = 'El contenido del email';
$headers = "From: Yo mismo
MIME-Version: 1.0
Content-type: text/html; charset=utf-8";
$success = mail($to, $subject, $email_text, $headers);
Normalmente, cuando usas mail, pues pones el to, el subject, el content y te olvidas, pero en este caso debes indicar el header con un from. El problema viene con el 99.9% de los plugins o themes que ofrecen formularios de contacto, que simulan el envío de email por parte del usuario para que cuando te llegue el email, le des a un reply y listo. En Dinahosting, con hosting compartido no se puede.
Para solucionar esto es necesario hacer una chapuza enorme, cambiar el FROM de las cabeceras de wp_mail, para lo que deberemos añadir esto en nuestro functions.php:
add_filter( 'wp_mail_from', 'error_dinahosting');
function error_dinahosting($from) {
return get_bloginfo('admin_email');
}
Puedo entender y se agradece la seguridad de Dinahosting, pero creo que esto es un error.
Ahora viene la parte más complicada, y digo complicada porque sinceramente he tenido que mirar el código porque algo me fallaba cuando seguía lo que decía la documentación.
El nombre del fichero JSON tiene el siguiente formato [dominio de traducción]-[idioma]-[handler del fichero].json, total nada.
Dominio será el que usemos para traducir, en el ejemplo sería mi-plugin:
__( 'Hola que tal', 'mi-plugin' );
Idioma es el código del idioma, en este caso es_ES
Y por último el handler del fichero es el primer parámetro que usamos en wp_enqueue_script
Lo podemos ver todo en un ejemplo final:
wp_enqueue_script(
'mi-plugin-handler', // El handler mencionado anteriormente
$blocks_script, // Nuestro path
[
'wp-i18n', // De referenciar al menos a wp-i18n
],
);
wp_set_script_translations( 'mi-plugin-handler, 'mi-plugin', plugin_dir_path( __FILE__ ) . 'languages' );
Si por un casual necesitas que tu WordPress realice las búsquedas por el título del post y que ignore el contenido, tan sólo hay que añadir un filtro a tu functions.php, lo cual también sirve para editar las condiciones de búsquedas y añadirle o quitarle condiciones:
add_filter('posts_search', 'mi_search_title');
function mi_search_title($search) {
preg_match('/%([^%]+)%/', $search, $m);
if (isset($m[1])) {
// Original
// " AND (((wp_posts.post_title LIKE '%termino%') OR (wp_posts.post_content LIKE '%termino%'))) AND (wp_posts.post_password = '') "
return " AND wp_posts.post_title LIKE '%$m[1]%' AND (wp_posts.post_password = '') ";
} else {
return $search;
}
}
Harabi es un CMS para la creación de blogs del que ya hace tiempo se habla y del que oí por primera vez gracias a Daniel Mota. Andrés Nieto ya hablaba de él hace tiempo, y en Yukei.net también contaban la historia de este CMS y su origen (ligado al desarrollo de WordPress).
No soy fan de WordPress, como aplicación para usuario está muy bien, aunque las últimas versiones han dado unos pasitos para atrás, pero a nivel desarrollador, tengo que decir que WordPress no me gusta nada, ya sea a nivel de themes como a nivel de plugins. Por eso, el enterarme de cómo pasar de WordPress a Habari, ha hecho que me replantee usarlo como futuro CMS para SentidoWeb, y así poder trastear un poco.
Vía / PHPDeveloper.org
Los menús de WordPress son una de las funcionalidades menos aprovechadas de WordPress. Una de sus funciones más frecuente es la de blogroll, el problema viene cuando el cliente te pasa una lista de enlaces enorme que te toca meter a mano. Para evitar echar horas a esto, he desarrollado una caja que te aparecerá en los menús de WordPress que te permite importar lotes de enlaces sacados de un Excel, ODS, Google Drive, … tan solo tendrás que copiar las columnas y pegarlas (primera columna es el texto y la segunda el enlace):
// Añadir caja en menus para importar enlaces
function add_menu_importar_box() {
$screen = get_current_screen();
if ($screen->base == 'nav-menus') {
add_meta_box( "add-importar", 'Importar enlaces', 'add_menu_importar_meta_box', 'nav-menus', 'side', 'default', null );
}
}
add_action('admin_head', 'add_menu_importar_box');
function add_menu_importar_meta_box() {
?>
Copia los enlaces de la hoja de cálculo con el siguiente formato: Nombre, Enlace
El código es sencillo, con add_menu_importar_box creo la caja y con add_menu_importar_meta_box la "pinto", luego lo único que hay que hacer es llamar a wpNavMenu.addLinkToMenu con los datos del textarea y listo.
También he añadido botón de borrado masivo, porque borrarlos uno a uno es otra tortura.