Toma control del titulo de cada post
Escrito el 26 Apr, 2010 por Alexis en Wordpress
Como lo sabrás la etiqueta <title> es muy importante por diversas razones, ya sea SEO o para informar en sección del sitio nos encontramos. Generalmente (aunque no siempre sucede) tu Theme ya cuenta la etiqueta <title> optimizada donde cambia automáticamente según en la pagina/post que nos encontremos. O tal vez cuentes con algún plugin que te permita cambiar el titulo desde su respectivo panel.
El problema surge cuando no contamos ni con un Theme Optimizado ni con un plugin que nos permita controlar el titulo.
Por suerte desde Digging into WordPress nos acercan una solución elegante: Mediante de una serie de filtros crearemos un nuevo panel donde podremos tomar control del titulo.
Lo primero que necesitamos hacer deshacernos de la etiqueta <title> dentro de header.php por completo, ya que vamos a insertarla luego por medios de filtros.

Nuestra nueva función
En tu archivo functions.php vamos a insertar lo siguiente:
// Custom Page Titles add_action('admin_menu', 'custom_title'); add_action('save_post', 'save_custom_title'); add_action('wp_head','insert_custom_title'); function custom_title() { add_meta_box('custom_title', 'Change page title', 'custom_title_input_function', 'post', 'normal', 'high'); add_meta_box('custom_title', 'Change page title', 'custom_title_input_function', 'page', 'normal', 'high'); } function custom_title_input_function() { global $post; echo '<input type="hidden" name="custom_title_input_hidden" id="custom_title_input_hidden" value="'.wp_create_nonce('custom-title-nonce').'" />'; echo '<input type="text" name="custom_title_input" id="custom_title_input" style="width:100%;" value="'.get_post_meta($post->ID,'_custom_title',true).'" />'; } function save_custom_title($post_id) { if (!wp_verify_nonce($_POST['custom_title_input_hidden'], 'custom-title-nonce')) return $post_id; if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id; $customTitle = $_POST['custom_title_input']; update_post_meta($post_id, '_custom_title', $customTitle); } function insert_custom_title() { if (have_posts()) : the_post(); $customTitle = get_post_meta(get_the_ID(), '_custom_title', true); if ($customTitle) { echo "<title>$customTitle</title>"; } else { echo "<title>"; if (is_tag()) { single_tag_title("Tag Archive for ""); echo '" - '; } elseif (is_archive()) { wp_title(''); echo ' Archive - '; } elseif (!(is_404()) && (is_single()) || (is_page()) && (!(is_front_page())) ) { wp_title(''); echo ' - '; } elseif (is_404()) { echo 'Not Found - '; } if (is_home()) { bloginfo('name'); echo ' - '; bloginfo('description'); } else { bloginfo('name'); } if ($paged>1) { echo ' - page '. $paged; } echo "</title>"; } endif; rewind_posts(); }
Con esto lo que estamos haciendo, es insertar un nuevo box que aparecerá cuando escribamos o editemos una entrada. Luego la información generada se guarde cada vez que se se salve la entrada y por ultimo nuestro nuevo titulo se inserte en el header por medio de filtros.
Nuestro nuevo <title> es guardado como un custom field, pero como el Key “_custom_title” comienza con un guion bajo, este no se refleja en nuestra lista de custom fields, por lo que no molestara.

Cada vez que entres a editar o crear una entrada vas a encontrar un nuevo box donde podrás tomar control por completo de la etiqueta <title>
3 comentarios to “Toma control del titulo de cada post”
Trackbacks/Pingbacks
Back to TopDejar un comentario
Additional comments powered by BackType















baires |26/4/2010| Site: twitter.com/baires
Toma control del titulo de cada post http://goo.gl/fb/us46m #wordpress #hack
This comment was originally posted on Twitter
unique3w |27/4/2010| Site: twitter.com/unique3w
Toma control del titulo de cada post | Eliseos.net. http://icio.us/utspi5
This comment was originally posted on Twitter
baires |27/4/2010| Site: twitter.com/baires
Toma control del titulo de cada post http://goo.gl/fb/wVJmm #wordpress #hack
This comment was originally posted on Twitter