Как отсортировать записи по количеству лайков фейсбука? В данном уроке я расскажу о том, как занести в дополнительные поля количество лайков из соц. сети Facebook, и отсортировать записи по популярности. На основании данного урока можно сделать различные социальные опросы, рейтинги и многое другое.
В первую очередь, нам нужно узнать количество лайков, для этого нужно отправить запрос на сервера фейсбука. Facebook любезно предоставил всем пользователям реализовать данную возможнсть с помощью Facebook Graph. И так приступим, в файле single.php внутри цикла (после if(have_posts()) ), вставляем:
$fb = json_decode( file_get_contents( 'http://graph.facebook.com/?id='.get_permalink() ) ); $likes_count = $fb->shares; update_post_meta($post->ID, 'fb_likes_count', $likes_count, false);
С помощью данного кода, мы узнаем данные по конкретной странице, после чего заносим их в переменную, и обновляем дополнительное поле fb_likes_count. При каждом просмотре страницы, данные счетчиков будут обновляться и заноситься в дополнительные поля, поэтому данные будут всегда актуальны.
После того, как мы получили и занесли данные счетчика в дополнительное поле, можем отсортировать их с помощью WP_Query, или с query_posts с которым я знакомил вас в прошлых уроках. В моем случае я буду выводить 5 популярных записей по лайкам на главной странице. Для этого в файле index.php в нужном месте вставляем код перед циклом:
<?php $blog_args = array( 'posts_per_page' => 5, 'post_type' => 'post', 'meta_key' => 'fb_likes_count', 'orderby' => 'meta_value_num', 'order' => 'DESC' ); $blog_query = new WP_Query($blog_args); ?>
Вы можете указать другое количество выводимых записей, изменив цифру в поле posts_per_page, либо отсортировать записи по нарастающей изменив в поле order DESK на ASC. На официальном сайте можно более детально познакомится с функцией WP_Query, с помощью которой вы сможете выводить записи с определенной категории, определенного пользователя, записи по дате и с многими другими параметрами.
После данного кода формируете стандартный цикл с выводом записей в нужном вам виде, а также после цикла обязательно вставляем код:
<?php wp_reset_query(); ?>
Это делается для того, чтобы сбросить условие WP_Query.
Вот и подошел наш урок к концу, используйте данные с умом, продумывайте структуру шаблона и скрипта и вы получите уникальный и функциональный сайт. Помните, можно сделать всё, нужна лишь ваша фантазия, и базовые знания.
Если вам понравился данный урок, буду благодарен репостам и лайкам.