Como utilizar los comentarios de Facebook en WordPress

En estas líneas voy a escribir sobre como usar los comentarios de facebook (Facebook Comments) en un website construido con WordPress sin la necesidad de instalar un plugin para lograrlo.

Con esta explicación se pueden implementar los comentarios de Facebook en cualquier website, y es precisamente por eso que quería hacer notar como instalar los comentarios de Facebook sin el uso de un plugin, porque cada CMS tiene una manera distinta de implementar los comentarios, así que quise explicar como implementarlos en cualquier CMS de una forma parecida.

Paso 1 – Crear una applicación de Facebook.

Lo primero es crear una aplicación de Facebook para que represente a tu website. Esto se puede hacer en el centro de desarrolladores de Facebook. Haz click en + Crear Nueva Aplicación y entra el nombre de tu website, selecciona que aceptas los Facebook Platform Policies y continúa.

Una vez la App está creada vas a ser redirigido a una pantalla donde se pueden editar las propiedades de tu app. Ahora mismo no tienes que editar nada, solo hacer click en el link de Website y copiar la App ID. Este ID lo vas a utilizar posteriormente para indentificar a quienes pueden moderar los comentarios en tu website.

paso 2 – Añadir el Facebook Javascript SDK a WordPress

Ahora hay que agregar el Facebook Javascript SDK al template de WordPress. Agrega el código  a continuación en el header.php justo antes de la etiqueta </body> y sustituye el App ID que está en la linea 5 por el del paso anterior.

<!-- Facebook JavaScript SDK -->
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({appId: '141109849335437', status: true, cookie: true,
xfbml: true});
};

(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>
<!-- End Facebook JavaScript SDK -->

paso 3 – Agregando las herramientas de moderación

Mientras editas el <head> … </head> pega el código a continuación y sustituye de nuevo el App ID por el que copiaste en el paso 1. Esta etiqueta del Open Graph le dice a Facebook que asocie este website con la app especificada.

<!-- Facebook Open Graph Tags -->
<meta property="fb:app_id" content="141109849335437"/>
<!-- End Facebook Open Graph Tags -->

Paso 4 – Agregando el plugin de comentarios

Ya que has agregado el Javascript SDK al header de tu template, lo próximo que debes hacer es agregar el facebook comments plugin al archivo comments.php

Yo opté por eliminar los comentarios de WordPress de mi template, pero no tienes que hacer lo mismo, lo comentarios de Facebook y los de WordPress pueden co-existir.

Para agregar los comentarios a tu template crea o sustituye el archivo comments.php por el siguiente código:


<div id="comments">

<?php if ( comments_open() ) : ?>
 <div id="fbcomments">
 <div id="fb-root"></div>
 <script src="http://connect.facebook.net/es_ES/all.js#xfbml=1"></script>
 <fb:comments href="<?php the_permalink(); ?>" width="630" num_posts="10" ></fb:comments>
 </div>
 <?php endif; ?>

</div>

Estas líneas van a verificar que los comentarios estén abiertos para esta entrada antes de insertar el código de los comentarios de Facebook.  Se pueden cambiar la cantidad de comentarios (num_posts) y el ancho (width) para que cumpla con tus necesidades.

paso 5 – Comprobar los comentarios

Si ejecutaste todos los pasos anteriores correctamente, puedes dirgirte a una entrada cualquiera tu blog y bajar hacia donde están los comentarios y ver algo como esto:

Asumiendo que estás logueado en Facebook cuando haces esto deberías ver una opción para agregar comentario, vista del moderador y otra para editar las configuraciones, si no, debes verificar que la app Id del paso 1 están puestas correctamente en el header.

Para moderar los comentarios dirigete al Facebook comments moderation tool

Usando los Shortcodes de WordPress

Los shortcodes son un feature muy poderoso y a mi parecer poco utilizado de WordPress.  Imagina que pudieras agregar un anuncio de adsense o una lista de posts de una categoría dentro de un post.

Los shortcodes hacen eso y más y definitivamente van a lograr que tu vida desarrollando themes de WordPress  sea más fácil.

Un ejemplo

Con este código podemos agregar un link a nuestro perfil de Twitter en nuestros posts escribiendo [twitter-link]

Un ejemplo mejor, Posts

Ya que podemos agregar este tipo de funcionalidad a nuestra edición de posts, vamos a hacer algo un poco más interesante, crear un shrotcode que nos permita integrar una lista de posts de una categoría determinada en nuestros posts, por ejemplo:

… esto podemos usarlo asi:

[category-posts category="programacion" num="5"]

Y en su lugar va a aparecer una lista de posts de la categoría programación dentro de nuestro post.

Imágenes para los posts en WordPress 2.9

Hace un par de días estamos estrenando WordPress 2.9 y es muy probable que si has oído algo sobre los nuevos features  que trae sabrás que a los posts se le pueden asignar imágenes para usarlas como thumbnail. Estas imágenes que podemos asignarles a los posts no son solo thumbnails si no que pueden ser de cualquiera de los tamaños comunes que usa WordPress.

Voy a enseñar como usar estas imágenes en los templates, teniendo en cuenta que estas imágenes son una representación del post. La imagen esta directamente relacionada al post.

Como puedo asignarle imágenes a los posts?

Lo primero es que el Theme debe soportar este feature, de otra forma no lo vas a poder usar.

Para usar este feature tienes que estar en la pantalla de edicion de un post, en esta pantalla hay una cajita nueva que dice post thumbnail o page thumbnail para las paginas con un link para asignar la miniatura. al hace click en este link puede usar la herramienta de subir imagenes para asiganrle la imagen a tu post.

Aunque la cajita tiene como titulo post thumbnails aqui se pueden usar cualquiera de los tamaños de imagen por default que trae WordPress

  • Thumbnail
  • Medium
  • Large
  • Full (La imagen que subiste)

Como añado soporte para el feature de las imágenes de los post?

Para hacer este feature disponible a los usuarios del theme solo hay que agregarle esta linea a nuestro archivo functions.php

[snippet=25281]

Naturalmente esto no muestra nada en el theme, para eso debemos llamar la imagen en el loop:

[snippet=25282]

O en alguna seccion especial podemos elegir y solo mostrar las imagenes de tamaño mediano:

[snippet=25283]

Con estas pocas líneas podemos añadirle una funcionalidad bien avanzada a nuestros templates.

Miniposts en WordPress

Los minipost son entradas cortas, generalmente con enlaces interesantes que uno suele ver intercalado entre los posts regulares en algunos blogs.

Algunos ejemplos de blogs que utilizan miniposts incluyen blogpocket, Duarte 101 y ALT1040

En resumen hay que realizar 3 pasos:

  • Crear una categoría para los miniposts (miniposts)
  • Modificar el index.php del template
  • Publicar los miniposts como un posts cualquiera, solo hay que asignarle la categoría (miniposts)

Haciendolo

Primero hay que crear una categoría para guardar los miniposts, yo uso miniposts, pero se puede elegir cualquier nombre, lo importante es anotar el numero de id de la categoría (ID).

Ahora hay que modificar la plantilla para que cuando WP vaya a mostrar un post que pertenezca a la categoría “miniposts” lo muestre de forma diferente a como mostraría cualquier post de otra categoría.

Hay que encontrar la linea que dice:
<?php if (have_posts()) :  while (have_posts()) : the_post(); ?>

Justo debajo de esta linea introducir el siguiente codigo:

<?php if (in_category(35) && !is_single()): ?>
<ul class="miniposts">
  <li id="p<?php the_ID(); ?>">
    <?php echo wptexturize($post->post_content); ?>
    <!--
    <?php trackback_rdf(); ?>
    -->
  </li>
</ul>
<?php else: ?>

Y debajo continuamos el Loop con los elementos que no pertenecen a nuestra categoría de miniposts.

Optimizando

Según el método que llevamos, si publicamos dos miniposts seguidos se van a crear dos listas. así que para perfeccionar eso vamos a introducir el código de una función llamada stupid_hack que busca mediante una expresión regular  que busca los </ul> que estén seguidos de un <ul class=”miniposts”> para así unir todas las listas continuas de miniposts en una sola que contenga tantos miniposts seguidos como los hayan

function stupid_hack($str) {
  return preg_replace(’|</ul>\s*</ul class=”linklog”>|’, ”, $str);
}
ob_start(’stupid_hack’);

Este codigo puede ser llamado desde cualquier lugar del documento.

Dandole estilo

Se pueden personalizar los miniposts aplicandoles a las listas una clase como .miniposts y cambiar el tamaño, el color o la tipografia.

Hay que seguir las instrucciones

Instalando la actualización de WordPress aprendí una lección que solo te la enseña la experiencia, hay que seguir las instrucciones.

Actualicé a WordPress 2.6.2 y todo estaba bién, corrí el upgrade y todo estaba bién, bueno, todo está listo (eso pensaba) pero hubieron algunos pasos que pasé por alto cuando estaba instalando; Ni hice un backup, ni desactive los plugins.

Cuando quise ir al panel de administración, no entraba, ni la página principal, ni nada … solo podía pensar en “Backup Early, backup often”

Lo bueno fué que buscando en el foro de WordPress me dí cuenta de que no era un problema grave. Lo resolví con las indicaciones de algunos que habían tenido el mismo problema.

Ahora comprendo la razón de porqué el equipo de WordPress dice que hay que desactivar los plugins, eso lo voy a hacer segurito la próxima vez que tenga que actualizar, y también asegurarme de hacer backup antes de hacer cualquier cambio drástico a la instalación.

De alguna forma hay que aprender …