Я работаю над сайтом, пытаясь получить в нем популярный раздел сообщений. Я пробовал плагины, но они требуют wp_head (), и это разрушает jCarousel, который у меня есть на сайте. Я реализовал код для getPostViews со следующими функциями в functions.php:
function getPostViews($postID){ $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); return "0 View"; } return $count.' Views'; } function setPostViews($postID) { $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ $count = 0; delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); } else{ $count++; update_post_meta($postID, $count_key, $count); } }
Однако, когда я вставляю следующее в цикле для его отображения, мой сайт идет вниз, говоря мне, что мне нужно снова установить WordPress. Когда я перехожу к установке, я получаю список ошибок базы данных. Однако, если я вернусь к нему через некоторое время в тот же день с удаленным кодом, сайт снова работает.
<? query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC'); ?>
Как я могу заставить популярные сообщения работать с этим? Или есть другой способ, которым я должен смотреть, чтобы получить популярные должности для работы? Спасибо за помощь.
Положите это в functions.php:
function getPostViews($postID){ $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); return "0 View"; } return $count.' Views'; } function setPostViews($postID) { $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ $count = 0; delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); } else{ $count++; update_post_meta($postID, $count_key, $count); } }
Затем поместите это, когда вы хотите вернуть список сообщений w / views:
<ul> <?php global $post; $args = array( 'numberposts' => 5, 'offset'=> 1, 'category' => 1 ); $myposts = get_posts( $args ); foreach( $myposts as $post ) : setup_postdata($post); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <li><?php setPostViews(get_the_ID()); echo getPostViews(get_the_ID());; ?></li> <?php endforeach; ?> </ul>