Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [WordPress] Popularne posty bez pluginu
blown
post 17.01.2014, 11:18:56
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 16.03.2009

Ostrzeżenie: (0%)
-----


Witam,
znalazłem fajny skrypt, który wyświetla posty, które były najcześciej przglądane. Jednak chciałbym, żeby statystyki resetowały się co tydzień i w każdym tygodniu liczenie zaczynało się od zera i nie potrafie za bardzo tego skumać:

funtions.php
  1. function wpb_set_post_views($postID) {
  2. $count_key = 'wpb_post_views_count';
  3. $count = get_post_meta($postID, $count_key, true);
  4. if($count==''){
  5. $count = 0;
  6. delete_post_meta($postID, $count_key);
  7. add_post_meta($postID, $count_key, '0');
  8. }else{
  9. $count++;
  10. update_post_meta($postID, $count_key, $count);
  11. }
  12. }
  13. //To keep the count accurate, lets get rid of prefetching
  14. remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
  15.  
  16. function wpb_track_post_views ($post_id) {
  17. if ( !is_single() ) return;
  18. if ( empty ( $post_id) ) {
  19. global $post;
  20. $post_id = $post->ID;
  21. }
  22. wpb_set_post_views($post_id);
  23. }
  24. add_action( 'wp_head', 'wpb_track_post_views');
  25.  
  26. function wpb_get_post_views($postID){
  27. $count_key = 'wpb_post_views_count';
  28. $count = get_post_meta($postID, $count_key, true);
  29. if($count==''){
  30. delete_post_meta($postID, $count_key);
  31. add_post_meta($postID, $count_key, '0');
  32. return "0 View";
  33. }
  34. return $count.' Views';
  35. }


Wyświetlanie:

  1. <?php $popularpost = new WP_Query( array( 'posts_per_page' => 5, 'meta_key' => 'wpb_post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC' ) );
  2. while ( $popularpost->have_posts() ) : $popularpost->the_post();?>
  3. <h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
  4. <p><?php the_excerpt(); ?></p>
  5. <a href="<?php the_permalink() ?>"><img src="<?php bloginfo( 'template_url' ); ?>/images/ogladaj.png"></a>
  6. <img class="line" src="<?php bloginfo( 'template_url' ); ?>/images/line.png">
  7. <?php endwhile; ?>
Go to the top of the page
+Quote Post
usb2.0
post 17.01.2014, 15:26:08
Post #2





Grupa: Zarejestrowani
Postów: 341
Pomógł: 25
Dołączył: 28.09.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


odpalaj crona raz na tydzien z resetowaniem statystyk
Go to the top of the page
+Quote Post
amanda909
post 29.12.2015, 17:57:54
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 21.04.2015

Ostrzeżenie: (0%)
-----


skrypt pokazuje najczęściej czytane wpisy ogólnie a czy udało ci się rozwiązać problem żeby pokazywało z ostatniego tygodnia? bo ja też szukam takiego rozwiązania
Go to the top of the page
+Quote Post
Headamon
post 29.12.2015, 19:03:35
Post #4





Grupa: Zarejestrowani
Postów: 12
Pomógł: 1
Dołączył: 1.10.2015

Ostrzeżenie: (0%)
-----


Ja bym skorzystał z funkcji date i instrukcji warunkowej if. Zobacz jak wiele mozliwości ona oferuje: http://php.net/manual/pl/function.date.php
Możesz np. pobrać aktualny dzień roku, zadeklarować go jako zmienną aktualnyDzien i napisać, aby wyświetlał tylko te artykuły z przedziału od aktualnyDzien-7 do aktualnyDzien.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 18:27