Cum să afișezi numărul de vizualizări pentru articole

14 mai 2014, 07:39:16
Vizualizări: 30.7K
Voturi: 2

Încerc să afișez numărul de vizualizări pentru articole.

Am încercat funcția de mai jos pentru a afișa numărul de vizualizări al articolelor, dar primesc același număr pentru toate articolele din buclă. Nu obțin numărul corect de vizualizări.

Funcția:

       <?php
          // funcție pentru afișarea numărului de articole
           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 Vizualizări";
            }
            return $count.' Vizualizări';
      }             

          // funcție pentru numărarea vizualizărilor
       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);
               }
             }


          // Adaugă o coloană în WP-Admin
     add_filter('manage_posts_columns', 'posts_column_views');
       add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2);
     function posts_column_views($defaults){
      $defaults['post_views'] = __('Vizualizări');
     return $defaults; 
        }
       function posts_custom_column_views($column_name, $id){
if($column_name === 'post_views'){
    echo getPostViews(get_the_ID());
      }
       }
     ?>

Codul buclei:

   <ul>
      <?php $the_query = new WP_Query( 'showposts=5' ); ?>

        <?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
      <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a>

       <?php echo getPostViews(get_the_ID()); ?>  //Cod pentru afișarea vizualizărilor

  <?php echo substr(strip_tags($post->post_content), 0, 250);?></li>

      <?php endwhile;?>
  </ul>

Am nevoie de sugestii pentru a afișa corect numărul de vizualizări ale articolelor în bucla while

2
Comentarii

Care este sursa codului?

Brad Dalton Brad Dalton
14 mai 2014 07:44:49

Poți să explici de ce ștergi și apoi adaugi numărul de vizualizări în funcția getPostViews?

Chittaranjan Chittaranjan
14 mai 2014 10:12:50
Toate răspunsurile la întrebare 3
1

Adaugă acest cod în single.php și asigură-te că-l lipești în interiorul loop-ului.

<?php setPostViews(get_the_ID()); ?>

În final, pentru a afișa numărul de vizualizări ale unui articol, adaugă acest cod acolo unde dorești să fie afișat:

<?php echo getPostViews(get_the_ID()); ?>

.

<?php

// funcție pentru a afișa numărul de articole.

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 Vizualizări";
    }
    return $count.' Vizualizări';
}

// funcție pentru a număra vizualizările.
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);
    }
}

?>
10 apr. 2017 12:06:41
Comentarii

Am folosit codul tău și funcționează bine, dar nu înțeleg de ce avem 2 interogări? https://uupload.ir/files/bt01_screen_shot_2020-12-01_at_4.57.55_am.png

D.JCode D.JCode
1 dec. 2020 03:30:16
0

Dacă stocați corect metadatele, atunci puteți utiliza următorul cod pentru a afișa numărul de vizualizări

echo (int) get_post_meta(get_the_ID(), 'post_views_count', true) . ' Vizualizare(i)';
14 mai 2014 10:11:00
0
-1

Pentru valoarea 0 în add_post_meta numărul de vizualizări nu se actualizează. Încearcă linia add_post_meta($postID, $count_key, '1'); în loc de linia add_post_meta($postID, $count_key, '0');.

29 mai 2019 10:39:52