כמות צפיות בפוסטים – קובץ אחד כולל הכל!

ברוכים הבאים או השבים, היום נבנה ביחד כמה פונקציות שיעזרו לנו לתעד את כמות הצפיות בפוסטים באתר שלנו וגם לצפות ברשימה מסודרת לפי כמות הצפיות בממשק הניהול שלנו. למי שמכיר את אוסף הסניפטים לוורדפרס הוא יכול למצוא את הפונקציה בצורתה הבסיסית שם אבל הפעם שדרגנו אותה.

אז על מה אנחנו מדברים?

בכל פעם שמישהו יבקר בפוסט ישמר ערך של כמות הצפיות פלוס אחד עבור אותו הפוסט. זה נחמד מאוד ומאפשר לנו לראות לאורך זמן איזה פוסטים הכי פופולריים באתר שלנו בצורה מצטברת. בנוסף הפונקציה מאפשרת להציג את כמות הצפיות של כל פוסט במיקום הרצוי באתר שלנו.

כמה פונקציות, לכל אחת תפקיד

ההסבר ארוך אבל שווה קריאה למתעניינים – בסוף, הפונקציה להורדה קומפלט!

פונקציה לספירת צפיות

  • בדוק באיזה פוסט אנחנו נמצאים
  • קבל את הID שלו ואת ספירת הצפיות
  • הוסף 1 לספירת הצפיות ועדכן את הערך
// SET NEW VIEW WHEN PAGE LOADS 
add_action('wp_head', 'setPostViews');
function setPostViews() {
	if(is_singular()) {
	
		$postID 	= get_the_ID();
		$count_key 	= 'sagive_post_views';
		$count 		= get_post_meta($postID, $count_key, true);
		
		if($count==''){
			$count = 1;
			update_post_meta($postID, $count_key, '1');
		}else{
			$count++;
			update_post_meta($postID, $count_key, $count);
		}
		
	}
}

פונקציה להחזרת כמות הצפיות

  • בדוק באיזה פוסט אנחנו נמצאים
  • קבל את הID של הפוסט, ואת הערך של כמות הצפיות
  • אם הערך לא קיים עדכן את כמות הצפיות ל1
// GET POST VIEWS FUNCIONS
function getPostViews(){
	$postID 		= get_the_ID();
    $count_key 		= 'sagive_post_views';
    $count 			= get_post_meta($postID, $count_key, true);
	
    if($count==''){
        update_post_meta($postID, $count_key, '1');
        return '1 '.__('Views', THEME_NAME);
    }
    return $count.' '.__('Views', THEME_NAME);
}

צור דף בממשק הניהול להצגת צפיות

  • רישום של פריט חדש בתפריט (בממשק הניהול)
  • טען קצת CSS וJS להצגה קריאה של התוצאות
  • פונקציה להצגת טבלה עם כמות הצפיות מהגדול לקטן
/****************************************************
** ADD A PAGE TO ADMIN WHERE YOU CAN VIEW THE COUNTS
****************************************************/
add_action('admin_menu', 'postviews_menuitem');
function postviews_menuitem(){
	$pagetitle	= __('Views Statistics', THEME_NAME);
	$curpage 	= add_submenu_page('themes.php', $pagetitle, $pagetitle, 'administrator', 'viewstats', 'viewstats_pagedata'); 	
	add_action( 'admin_print_styles-' . $curpage, 'poststats_options_admin_styles' );	
}


// ENQUEUE SCRIPTS & STYLES TO THIS PAGE
add_action( 'admin_init', 'poststats_admin_init' );
function poststats_admin_init() {
   wp_register_style('bootstrapcss', 'https://ajax.aspnetcdn.com/ajax/bootstrap/3.0.3/css/bootstrap.min.css');
   wp_register_script('bootstrapjs', 'https://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js');
}

function poststats_options_admin_styles() {
	wp_enqueue_style('bootstrapcss');
	wp_enqueue_script('bootstrapjs');
}


// BUILD THE TABLE IN THIS PAGE
function viewstats_pagedata() {
	?>
	<div class="wrap"><div id="icon-tools" class="icon32"></div>
	
		<h2 style="border-bottom: 1px solid #ccc; padding: 10px 0;margin: 0 0 10px;"><?php _e('Views Statistics', THEME_NAME); ?></h2>
		
		<table class="table table-responsive table-bordered table-striped bgFF">
			<tr>
				<th class="text-right"><?php _e('Post Name', THEME_NAME); ?></th>
				<th class="text-right"><?php _e('Views Count', THEME_NAME); ?></th>
				<th class="text-right"><?php _e('Published on', THEME_NAME); ?></th>
			</tr>	
			
			<?php
			$the_query = new WP_Query(array('posts_per_page'=>-1, 'meta_key' => THEME_PREF.'post_views', 'order'=>'DESC', 'orderby' => 'meta_value_num'));
			while ( $the_query->have_posts() ) {
				$the_query->the_post();
				
				$pid	= get_the_ID();
				$pviews = get_post_meta($pid, THEME_PREF.'post_views', true);
				
				echo '
				<tr>
					<td><a href="'.get_permalink().'">'.get_the_title().'</a></td>
					<td>'.$pviews.' '.__('Views', THEME_NAME).'</td>
					<td>'.get_the_date().'</td>
				</tr>
				';
			}
			wp_reset_postdata();
			?>
		</table>
		
	</div>	
	<?php
}

הפונקציה המלאה להורדה

אם אתם כמוני ומתעצלים לחבר בין הפונקציות ורוצים משהו קומפלט הגעתם לחלק הנכון במאמר. הורידו את הסקריפט המלא כאן (תמורת שיתוף). שימו לב שעדיין צריך להעלות את הסקריפט בעזרת FTP לאתר שלכם ולהכליל אותו בקובץ functions.php

אז מה אתם צריכים לעשות כדי שזה יעבוד?

1. להעלות את הקובץ לתוך התבנית שלכם 2. להכליל את הקובץ אל Functions.php 3. סיימתם 4. נשבע לכם, זהו!

שאלות ותשובות

איך מציגים את כמות הצפיות בתוך פוסט? +
אתם יכולים להציג את כמות הצפיות של כל פוסט ישירות בתוך הפוסט או לדוגמה בקטגוריה כפי שאנחנו עושים (ראו דוגמה בקטגוריה בלוג קידום אתרים).

למעשה, מכיוון שהכל מוכן זה מאוד מאוד קל לעשות זאת בעזרת שורת קוד אחת במיקום הרצוי:

		<?php echo getPostViews(); ?>
		
שימו לב:

שימו לב שהפקודה איננה מתייחסת לID מסוים ולכן יש לשים אותה איפשהו בתוך הלופ של וורדפרס

איפה אני יכול לראות את כל הצפיות בכל הפוסטים? +
כחלק מהפונקציה שהצעתי כאן להורדה יצרנו דף חדש בממשק הניהול שלנו. דף זה יציג טבלה מסודרת על פי כמות הצפיות מהכי הרבה צפיות להכי מעט ויחזיר את כל הפוסטים ברשימה מסודרת.

אם אתם רואים רשימה עם כלום צפיות אל תשכחו שהרגע התקנתם את זה והפונקציה תתחיל לספור מהרגע בו הכללתם את הקובץ של הסקריפט לתוך הFunctions.php שלכם ולא לפני זה.

את הדף הזה ניתן למצוא בממשק הניהול של אתר הוורדפרס שלכם תחת: עיצוב -> Views Statistics

איפה זה בממשק הניול
הנה דוגמה של איך שזה נראה אצלי: הדגמה של כמות הצפיות
איך אני מעלה את הקובץ לשרת ומה זה FTP? +
אם באמת לחצתם על השאלה הזאת אז… המדריך הזה לא בשבילכם!

אל תסתכנו, אם אתם לא יודעים מה אתם עושים ואיך להעלות את הקבצים לשרת שלכם, איך להכליל את הקובץ ומה עושים איתו באופן כללי בקשו ממישהו שיודע לעזור.

יש לכם שאלה? כתבו לנו

אני יודע שזה קצת טכני אבל בואו נודה, זה מיועד למי שמבין דבר או שניים בוורדפרס. אם יש לכם שאלה אתם יותר ממוזמנים לפרסם אותה בעזרת טופס התגובות ונשמח לעזור. דרך אגב, זה יהיה נחמד מצדכם לפרגן עם לייק, בהצלחה…

  • אהבתם? שתפו!