Cómo Ordenar Las Entradas En Wordpress Según El Número De &Quot;Me Gusta&Quot; De Facebook

Cómo ordenar las entradas en WordPress según el número de “Me gusta” de Facebook

VeraSoul
VeraSoul Tutoriales WordPress
3 Min.

Las entradas en WordPress pueden ser ordenadas según su fecha, el título, etc…, pero existe una forma de que podamos ordenarlas según el número de “Me gustas” de Facebook que cada una de ellas tenga, aunque pare ello debemos retocar bastante el código, en la entrada de hoy pretendo explicarles en la medida de lo posible y de la mejor forma que se entienda. ¿Cómo ordenar dichas entradas según el número indicado de “Me gusta”?.

Como el proceso es algo largo, intentaré resumirlo lo que más pueda, pero antes de nada, debemos hacer una copia de seguridad de los siguientes archivos: funtions.php, header.php, footer.php, index.php, archive.php, pues estos son los ficheros que vamos a emplear para realizar las modificaciones pertinentes.

Añadiendo la función a functions.php

Añade el siguiente código al fichero arriba mencionado, al final del todo y antes del cierre de PHP.

function inserta_customfield_facebook($post_ID) {
global $wpdb;
if(!wp_is_post_revision($post_ID)) {
add_post_meta($post_ID, 'numero_megusta', '0', true);
}
}
add_action('publish_page', 'inserta_customfield_facebook');
add_action('publish_post', 'inserta_customfield_facebook');

 

Mediante el código anterior se crea automáticamente un campo personalizado para cada entrada que denominamos “numero_megusta” y en el mismo se almacenará el número de veces que un usuario hace click en “Me gusta”, pero claro, esto no se llevará a cabo hasta que retoquemos el código del loop.

Contabilizando el número de “Me gusta”

Una vez que tenemos la función que nos agrega a cada entrada la variable que necesitamos para realizar el recuento, debemos añadir el siguiente código en el header.php, de tal forma que vayamos actualizando el número de dicho campo personalizado. Esto podemos hacerlo a nuestro gusto, bien en el fichero header.php o en el footer.php

 

global $wp_query;
$paginaweb = get_permalink();
$idpost = $wp_query->post->ID;
$data = file_get_contents('http://graph.facebook.com/?id='.$paginaweb);
$json = $data;
$obj = json_decode($json);
$like_no = $obj->{'shares'};
$meta_values = get_post_meta($idpost, 'numero_megusta', true);

if ($like_no == $meta_values) {
}else if (empty($meta_values)) {
   add_post_meta($idpost , 'numero_megusta', $like_no, true);
   update_post_meta($idpost , 'numero_megusta', $like_no, false);
} else {
   update_post_meta($idpost, 'numero_megusta', $like_no, false);
}

 

Es necesario realizar esto en un blog de prueba antes de hacer los cambios y disponer de las copias de seguridad necesarias.

 

Compartir
Dejar un comentario