ერთ-ერთი მომხარებლის თხოვნით ვწერ პოსტს, სადაც აღნიშნული იქნება, ვორდპრესის ერთგვარი სტატისიკა. სწორედ ისეთივემ როგორიც ჩემი Sidebar-ის მარჯვენა ქვედა კუთხეშია. ბევრ ფილოსოფიას არ დავიწყებ და პირდაპირ კოდების წერას შევუდგები. ამ სტატისტიკის კოდში მე განვიხილავ პოსტების, გვერდების, ტეგების, კომენტარებისა და სპამების დათვლის კოდებს.

statistics

ბლოგის სტატისტიკა

1) პოსტების დათვლა

$numposts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE
post_status = 'publish' and post_type='post'");
if (0 < $numposts) $numposts = number_format($numposts,0,'',' ');

ეს SQL ბრძანება და PHP კოდი მოქცემთ საშუალებას დაითვალოთ იმ პოსტების რაოდენობა, რომელიც არის გამოქვეყნებული და პოსტის სახისაა. (და არა გვერდის)

echo ფუნციის მეშვეობით კი შეგიძლიათ ცვლად $numposts-ის ეკრანზე გამოტანა, რაც საშალებას მოქცემთ ზუსტად ასახის გამოქვეყნებული პოსტების რაოდენობა.

2) გვერდების დათვლა

$numpages = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE
post_status = 'publish' and post_type='page'");
if (0 < $numpages) $numposts = number_format($numpages,0,'',' ');

ეს კოდი კი დაითვლის გვერდების რაოდენობას. ჩვეულებრივ იგი 1-ის ტოლია, რადგან ვორდპრესის ინსტალაციიასას იცით, რომ იგი ავტომატურად ქმნის გვერდს, სახელწოდებით About, რომლის წაშლაც უმარტივესია.

3) ტეგების დათვლა

$numtags = $wpdb->get_var("SELECT COUNT(*)
FROM $wpdb->term_taxonomy WHERE taxonomy = 'post_tag'");
if (0 < $numtags) $numtags = number_format($numtags,0,'',' ');

დიდ ახსნა არც ამას სჭირდება, ჩვეულებრივ მისი გამოძახება echo ფუნციის მეშვეობით შეგიძლიათ.

4) კომენტარების დათვლა

$numcomms = $wpdb->get_var("SELECT COUNT(*)
FROM $wpdb->comments WHERE comment_approved = '1'");
if (0 < $numcomms) $numcomms = number_format($numcomms,0,'',' ');

აქაც ყველაფერი ანალოგიურად არის. SQL კოდი ითვლის ბაზაში არსებულ კომენტარების რაოდენობას, რომელთაგანაც  კომენტარები იქნა დადასტურებული, ანუ გამოქვეყნებული.

5) სპამის დათვლა

სპამის დათვლა ხდება პლაგინ აკისმეტის მეშვეობით ( Akismet ), მისი გადმოწერის და დაყენების შემდეგ, თქვენ უნდა ჩაწეროთ აკისმეტის კონფიგურაციის გვერდზე ( wp-admin/plugins.php?page=akismet-key-config ) WordPress.com API Key, რომელიც WordPress.Com-ზე რეგისტრაციისას ავტომატურად გენერირდება და იგი თქვენი პროფილის გვერდში ინახება.

პლაგინის ჩართვის და ყველა ფუქნცის გავლის შემდეგ. თქვენ მოგიწევთ პლაგინის ფაილის რედაქტირება. akismet.php-ისა, რომელიც /wp-content/plugins/akismet/ ფოლდერში მდებარეობს.

ფაილის ბოლოში არის ერთი ფუნქცია, სახელწოდებით – akismet_counter();  ჩვენ სწორედ ამ ფუნქციის რედაქტიება გვჩირდება, რათა ეკრანზე მხოლოდ ის რიცხვი გამოვიტანოთ, რომელიც სპამია. ჩვეულებრივ ეგ კოდი ას გამოიყურება

function akismet_counter() {
?>
<style type="text/css">
#akismetwrap #aka,#aka:link,#aka:hover,
#aka:visited,#aka:active{color:#fff;text-decoration:none}
#aka:hover{border:none;text-decoration:none}
#aka:hover #akismet1{display:none}
#aka:hover #akismet2,#akismet1{display:block}
#akismet2{display:none;padding-top:2px}
#akismeta{font-size:16px;font-weight:bold;
line-height:18px;text-decoration:none}
#akismetcount{display:block;font:15px Verdana,Arial,Sans-Serif;
font-weight:bold;text-decoration:none}
#akismetwrap #akismetstats{background:url(
<?php echo get_option('siteurl'); ?>/wp-content/plugins/akismet/akismet.gif)
no-repeat top left;border:none;color:#fff;
font:11px 'Trebuchet MS','Myriad Pro',sans-serif;height:40px;line-height:100%;
overflow:hidden;padding:8px 0 0;text-align:center;width:120px}
</style>
<?php
$count = number_format_i18n(get_option('akismet_spam_count'));
?>
<div id="akismetwrap">
<div id="akismetstats"><a id="aka" href="http://akismet.com" title="">
<div id="akismet1"><span id="akismetcount"><?php echo $count; ?></span>
<span id="akismetsc"><?php _e('spam comments') ?></span></div>
<div id="akismet2"><span id="akismetbb"><?php _e('blocked by') ?></span>
<span id="akismeta">Akismet</span></div>
</a></div>
</div>
<?php
}

?>

ჩვენ კი იგი ამ სახემდე უნდა მივიყვანოთ

// Counter for non-widget users
function akismet_counter() {
$count = number_format_i18n(get_option('akismet_spam_count'));
return $count;
}
?>

ეკრანზე კი დათვლილი სპამეის რაოდენობა შეგვიძლია echo akismet_counter(); -ის მეშვეობით.

მოკლედ თქვენი სურვილისამებრ შეგიძლიათ ამ კოდების გამოყენება და მატი გამოქვეყნება, დიზაინის რომელიმე ადგილას.

გაფრთხილებთ რომ ამ კოდების გამოყენება Widget-ებში შეუძლებელია.

შემაჩნევდით ალბათ, რომ ყველა ცვლად, რომელიც გამოყენებული იყო SQL  ბრძანებისას, დაბრუნებული იყო number_format ფუქნციის მეშვეობით. ეს არის ფუქნცია PHP-ში, რომელიც დიდ რიცხვს აფორმატებს მომხმარებლის სურვილისამებრ.

მაგალითად, თუ პოსტების ან დათვლილი ინფორმაციის რაოდნეობა დიდი რიცხვს შეადგენდა, მაგალითად 5 658-ს, იგი ეკრანზე გამოიტანდა 5658 სახით, რაც არც თუ ისე სასიამოვნოა, ეს ფუნცია და არსებული პარამეტრები კი გვაძლევს საშუალებას, რომ 5 ათასი გამოვყოთ ცალკე, და 658 ცალკე :)