Crea tu complemento posicionamiento web en buscadores

Crea tu complemento posicionamiento web en buscadores

0 892

Siempre estamos con la discusión de cuál es el mejor plugin de SEO, que si el de Yoast pues tiene más cosas, que si el All in one posicionamiento en buscadores pack pues no falla nunca, que si F. está orate, que si meto las tags manualmente, etcétera Mas ¿y si creas el tuyo?

Así que basta de debates estériles y discusiones inútiles de a ver quién la tiene más larga y manos a la obra a crear un complemento SEO básico que agregue las descripciones meta y un título para Open Graph con su descripción a la cabecera de las publicaciones de WordPress.

De paso aprenderemos cómo crear cajas meta a medida, de qué manera sanear los datos facilitados por el usuario, cómo guardar los datos en una entrada o bien página y de qué manera recuperar los datos guardados, ahí es nada.

:: Creando la caja meta ::

Lo primero es decidir donde debe aparecer la caja meta.

En nuestro complemento la caja meta se añadirá en la pantalla de edición de entradas y páginas. Para hacer esto se crea una función que contenga una variable que almacene un array que indique donde mostrar la caja meta y luego un loop foreach que devuelva el array y agregue la caja meta a la pantalla escogida utilizando la función add_meta_box.

Finalmente se conecta la función con la acción add_meta_boxes.

function tes_mb_create()  /  @array  dólares americanos screens Pantalla en la que se mostrará la caja meta  @values post, page, dashboard, link, attachment, custom_post_type / $ screens = array( 'post', 'page' ); foreach ( $ screens as $ screen )  add_meta_box( 'tes-meta', 'Ajustes posicionamiento en buscadores ayudaWP', 'tes_mb_function',  dólares americanos screen, 'normal', 'high' ); add_action( 'add_meta_boxes', 'tes_mb_create' );

Si lo prefieres, también podrías agregar una función add_meta_box doble para incluir la caja meta tanto en la pantalla de edición de entradas como en la de páginas, algo así:

function tes_mb_create()  add_meta_box( 'tes-meta', 'Ajustes posicionamiento en buscadores ayudaWP', 'tes_mb_function', 'post', 'normal', 'high' ); add_meta_box( 'tes-meta', 'Ajustes SEO ayudaWP', 'tes_mb_function', 'page', 'normal', 'high' );add_action('add_meta_boxes', 'tes_mb_create');

:: Código de las cajas meta ::

En el código precedente, la función callback que imprime el HTML en la pantalla del editor es la denominada tes_mb_function, que es el tercer razonamiento de la función add_meta_box.

En nuestro plugin solo estamos programando 2 campos de formulario HTML con los que administrar los datos de title y description.

function tes_mb_function($ post)  //si existen se recuperan los valores de los metadatos  dólares americanos tes_meta_title = get_post_meta( $ post->ID, '_tes_meta_title', true ); $ tes_meta_description = get_post_meta( $ post->ID, '_tes_meta_description', true ); // Se agrega un campo nonce para probarlo más adelante cuando validemos wp_nonce_field( 'tes_inner_custom_box', 'tes_inner_custom_box_nonce' ); echo '
Etiqueta “title”:
Meta “description”:

‘;

La explicación del código tes_mb_function precedente es la siguiente:

  • Recupera y guarda los valores de meta datos en una variable solo si esta existe. Se hace así para llenar los campos con sus valores cuando estén presentes en la base de datos.
  • Se agrega un nonce a fin de que podamos probarlo después, durante la verificación que ocurre antes de que los datos insertados en los campos de formulario se guarden en la base de datos.
  • El formulario HTML consistente de un campo de texto de introducción de datos y un área de texto donde atrapar el título etiqueta description hace echo y se imprime.

Con solo esto ya deberías poder ver la caja meta en la pantalla de edición de entradas y páginas.

caja meta mi plugin seo

:: Guardando los datos de la caja meta ::

Una caja meta no estará completa hasta que pueda guardar los datos en la base de datos. El nombre de la función que administra el guardado de datos va a ser tes_mb_save_data. El código sería este:

function tes_mb_save_data($ post_id)  /  Debemos contrastar que esto procede de nuestra pantalla y con la autorización adecuada,  para poder lanzar save_post en cualquier otro instante. / // Comprobamos si se ha definido el nonce. if ( ! isset( $ _POST['tes_inner_custom_box_nonce'] ) ) return $ post_id;  dólares americanos nonce = $ _POST['tes_inner_custom_box_nonce']; // Comprobamos que el nonce es válido. if ( ! wp_verify_nonce( $ nonce, 'tes_inner_custom_box' ) ) return $ post_id; // Si es un autoguardado nuestro formulario no se enviará, ya que aún no queremos hacer nada. if ( defined( 'DOING_AUTOSAVE') && DOING_AUTOSAVE ) return  dólares americanos post_id; // Verificamos los permisos de usuario. if ( 'page' == $ _POST['post_type'] )  if ( ! current_user_can( 'edit_page', $ post_id ) ) return $ post_id;  else  if ( ! current_user_can( 'edit_post', $ post_id ) ) return  dólares americanos post_id;  / Vale, ya es seguro que guardemos los datos. / // Si existen entradas viejas las recobramos  dólares americanos old_title = get_post_meta(  dólares americanos post_id, '_tes_meta_title', true );  dólares americanos old_description = get_post_meta(  dólares americanos post_id, '_tes_meta_description', true ); // Saneamos lo introducido por el usuario.  dólares americanos title = sanitize_text_field(  dólares americanos _POST['tes_meta_title'] );  dólares americanos description = sanitize_text_field(  dólares americanos _POST['tes_meta_description'] ); // Actualizamos el campo meta en la base de datos. update_post_meta( $ post_id, '_tes_meta_title', $ title,  dólares americanos old_title ); update_post_meta(  dólares americanos post_id, '_tes_meta_description', $ description,  dólares americanos old_description );add_action( 'save_post', 'tes_mb_save_data' );

La explicación del código precedente es la siguiente:

  • Primero verificamos que proviene de nuestra pantalla y con la autorización conveniente, para poder lanzar en cualquier otro momento save_post y asimismo comprobamos que sea válido el nonce definido previamente en tes_mb_function.
  • A continuación, si ya hay una entrada en la base de datos la recobramos y la guardamos en las variables dólares americanos old_title y dólares americanos old_description. Hacemos esto debido a que la función update_post_meta que se ocupa de guardar los datos en la base de datos en ocasiones requiere revisar un valor anterior ya antes de actualizar la fila de la caja meta en la base de datos con los nuevos valores.
  • Después de esto saneamos los datos mandados utilizando la función de WordPress sanitize_text_field, que transforma HTML a su entidad, recorta todas y cada una de las tags, borra saltos de línea, tabulados y espacios en blanco extras y recorta octetos.
  • Los datos meta se actualizan en la base de datos mediante update_post_meta.
  • Finalmente se conecta tes_mb_save_data con la acción save_post para guardar los datos de la caja meta cuando se actualice la entrada o página.

:: Utilizando los datos guardados ::

No olvides que los datos guardados se emplearán para añadir el título y descripción de Open Graph y asimismo para agregar la meta description” a la cabecera de cada página.

Para lograrlo creamos la función denominada tes_mb_display, que contendrá las tags que deseamos, para entonces conectar con la acción wp_head.

function tes_mb_display()  global $ post; // recobramos los valores de los metadatos si existen  dólares americanos tes_meta_title = get_post_meta( $ post->ID, '_tes_meta_title', true ); $ tes_meta_description = get_post_meta( $ post->ID, '_tes_meta_description', true ); echo ' <!- -="" author:="" mi="" plugin="" seo=""> <!- -="" mi="" plugin="" seo=""> ';add_action( 'wp_head', 'tes_mb_display' );

¿Qué hemos hecho?

  • Para advertir adecuadamente el ID de la entrada recobramos la referencia a exactamente la misma usando el objeto global dólares americanos post.
  • A continuación se recobran los datos meta de la base de datos y se guardan en las variables $ tes_meta_title y dólares americanos tes_meta_description respectivamente.
  • Luego definimos la gaga meta que debe insertarse en la cabecera de la plantilla.
  • Para concluir conectamos la función con wp_head.

Si has escrito y guardado un título y descripción para una entrada o bien página al ver el código fuente de exactamente la misma vas a poder comprobar la presencia de las tags title” y description” para Open Graph y la meta description” empleada por los buscadores web.

mi plugin seo

Al final, en muy pocos pasos, hemos creado un complemento SEO que agrega etiquetas de título y descripción para Open Graph y la meta description” a la cabecera de nuestras entradas y páginas.

tags generadas por mi plugin seo

El código completo del complemento sería algo así:

ID, '_tes_meta_title', true ); $ tes_meta_description = get_post_meta( $ post->ID, '_tes_meta_description', true ); // Se añade un campo nonce para probarlo más adelante cuando validemos wp_nonce_field( 'tes_inner_custom_box', 'tes_inner_custom_box_nonce' ); echo '
Etiqueta “title”:
Meta “description”:

‘; }function tes_mb_save_data( dólares americanos post_id) / Tenemos que contrastar que esto proviene de nuestra pantalla y con la autorización adecuada, para poder lanzar save_post en cualquier otro momento. / // Comprobamos si se ha definido el nonce. if ( ! isset( dólares americanos _POST[‘tes_inner_custom_box_nonce’] ) ) return dólares americanos post_id; $ nonce = $ _POST[‘tes_inner_custom_box_nonce’]; // Comprobamos que el nonce es válido. if ( ! wp_verify_nonce( $ nonce, ‘tes_inner_custom_box’ ) ) return $ post_id; // Si es un autoguardado nuestro formulario no se mandará, en tanto que aún no deseamos hacer nada. if ( defined( ‘DOING_AUTOSAVE’) && DOING_AUTOSAVE ) return dólares americanos post_id; // Verificamos los permisos de usuario. if ( ‘page’ == dólares americanos _POST[‘post_type’] ) if ( ! current_user_can( ‘edit_page’, dólares americanos post_id ) ) return dólares americanos post_id; else if ( ! current_user_can( ‘edit_post’, $ post_id ) ) return dólares americanos post_id; / Vale, ya es seguro que guardemos los datos. / // Si existen entradas viejas las recuperamos dólares americanos old_title = get_post_meta( $ post_id, ‘_tes_meta_title’, true ); $ old_description = get_post_meta( $ post_id, ‘_tes_meta_description’, true ); // Saneamos lo introducido por el usuario. dólares americanos title = sanitize_text_field( dólares americanos _POST[‘tes_meta_title’] ); dólares americanos description = sanitize_text_field( $ _POST[‘tes_meta_description’] ); // Actualizamos el campo meta en la base de datos. update_post_meta( dólares americanos post_id, ‘_tes_meta_title’, dólares americanos title, $ old_title ); update_post_meta( dólares americanos post_id, ‘_tes_meta_description’, $ description, $ old_description );add_action( ‘save_post’, ‘tes_mb_save_data’ );function tes_mb_display() global $ post; // recobramos los valores de los metadatos si existen $ tes_meta_title = get_post_meta( $ post->ID, ‘_tes_meta_title’, true ); $ tes_meta_description = get_post_meta( $ post->ID, ‘_tes_meta_description’, true ); echo ‘ <!- -=”” author:=”” mi=”” plugin=”” seo=””><!- -=”” author:=”” mi=”” plugin=”” seo=””><!- -=”” mi=”” plugin=”” seo=””>

<!- -=”” mi=”” plugin=”” seo=””>’;add_action( ‘wp_head’, ‘tes_mb_display’ );?>

Si te animas puedes agregarle también, por ejemplo, la meta keywords, que también te agradecerán los buscadores.

Si quieres, en vez de copiar cada parte del código puedes descargarte el complemento a continuación:

Descargar Plugin posicionamiento en buscadores básico”mi_plugin_seo.php_.zip – Descargado ciento setenta y uno veces – dos kB

ARTÍCULOS SIMILARES