Como generar un enlace mailto con subject y body en WordPress

Enviar pagina por mail con WordPressQuizás alguna vez hayas necesitado añadir un enlace que permita enviar la página por e-mail directamente.

Hay formas de hacerlo mediante javascript, pero me he decidido a ponerlo aquí mediante PHP ya que de esta forma es posible personalizar la función para mostrar, por ejemplo, un extracto del post o cualquier otra variable de WordPress, eso ya lo dejo a tu imaginación…

Sin más preámbulos aquí está el código que se agrega al archivo functions.php de tu plantilla favorita:

//Inserta un enlace para enviar por correo directo
function direct_email($text=”Enviar por e-mail”){
global $post;
$title = htmlspecialchars($post->post_title);
$subject = ‘Te envio desde ‘.htmlspecialchars(get_bloginfo(‘name’)).’ esta pagina ‘.$title;
$body = ‘Te mando esto por si te resulta interesante: ‘.$title.’. Lo puedes ver aqui: ‘.get_permalink($post->ID);//$body .= ‘. Extracto: ‘.$post->post_excerpt;
$link = ‘<a rel=”nofollow” href=”mailto:?subject=’.rawurlencode($subject).’&amp;body=’.rawurlencode($body).'” title=”‘.$text.’ : ‘.$title.'”>’.$text.'</a>’;

return $link;
}

Si deseas agregar en el cuerpo del mensaje un extracto del post, descomenta la línea “// $body = ‘Extracto:.’. ….” mediante la eliminación de “//”. Puedes agregar o sustituir la variable post_excerpt por otra información como la referente a etiquetas o a categorías, al final de este post que hay una una lista de algunas de las variables disponibles.

Para usarlo sólo hay que poner este código en tu plantilla donde quieras que aparezca el, normalmente en single.php:

Puedes <?php echo direct_email(‘enviar por mail’) ?> este artículo

Espero que te sea útil en alguna ocasión, y espero tus comentarios si te apetece decir algo al respecto.

BONUS: Lista de variables que puedes usar en WordPress
$post->ID;//ID de post
$post->post_author;//ID del autor
$post->post_date;//Fecha de publicacion
$post->post_date_gmt;//Fecha de publicacion en formato GMT
$post->post_content;//Contenido del post
$post->post_title;//Titulo del post
$post->post_category;//ID de la categoría del post
$post->post_excerpt;//Resumen del post si existe
$post->post_status;//Estado del post (publicado, borrador, etc…)
$post->comment_status;//Estado de los comentarios (cerrados, abiertos, privados)
$post->ping_status;//Status de Ping activo o no
$post->post_password;//Contraseña para publicar, si estuviese definida
$post->post_name;/URL (enlace permanente) del post
$post->to_ping;//Sitios a notificar la publicacion
$post->pinged;//Sitios notificados
$post->post_modified;//Fecha de ultima modificacion del post (es = a post_date si no se ha modificado)
$post->post_modified_gmt;//Fecha en formato GMT de ultima modificacion del post
$post->post_content_filtered;//Se usa para guardar una versión en caché de contenido del post (lo más probable, con todo filtro the_content ya aplicado). Si tienes un plugin que se ejecuta un filtro de recursos muy fuerte con respecto al contenido, puedes usar el almacenamiento en caché de los resultados con post_content_filtered y llamandolo desde el front-end.
$post->post_parent;//Si hay un adjunto en el post, devuelve el ID del mensaje relacionado, de lo contrario devuelve 0
$post->guid;//URL corta (?p=ID) del post
$post->menu_order;//Indica el orden asignado al post
$post->post_type;//Indica si se trata de una página, de un post o de un archivo adjunto
$post->post_mime_type;//En el caso de archivo adjunto, devuelve el tipo de archivo (imagen, flash, etc…)
$post->comment_count;//El numero de comentarios del post
$post->ancestors;//Esta variable almacena en un array el $post->ID del padre de la página presente, el padre de su padre, el padre de su padre su padre, etc. hasta llegar a la página de primer nivel (o sea, la que se encuentra directamente bajo la raíz del sitio).

Me lo dijo un pajarito que se dedica al Diseño web que lo vió en otra web inglesa que como no estaba completa pongo la fuente origina que es: WordPress: enlace para enviar la página por e-mail y yo lo completé con más información vista en WordPress y la información fuera del bucle, gracias Jorge!!!

Anuncios

Deja tu comentario, no te cortes

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s