نمایش مطالب پربازدید در وردپرس بدون افزونه (راهنمای جامع)
یاد بگیرید چگونه بدون استفاده از هیچ افزونهای، مطالب پربازدید وبسایت وردپرس خود را نمایش دهید. افزایش تعامل کاربر و بهبود سیو داخلی با کدنویسی ساده و لینکسازی اصولی.
آیا میخواهید بخش مطالب پربازدید را به وبسایت وردپرس خود اضافه کنید اما از نصب افزونههای اضافی اجتناب دارید؟ شاید بخواهید سرعت سایت را حفظ کنید یا کنترل بیشتری روی خروجی داشته باشید.
خبر خوب این است که با یک تکه کد ساده و قدرتمند میتوانید این کار را به راحتی انجام دهید. در این آموزش، به شما نشان میدهیم که چگونه بدون هیچ افزونهای، لیستی از پستهای پربازدید را در sidebar، فوتر یا هر بخش دیگری از سایت خود نمایش دهید و با لینکسازی داخلی حرفهای، سیو سایتتان را تقویت کنید.
هدایت کاربران به مطالب ارزشمند: بازدیدکنندگان جدید را به محتوای پرطرفدار و معمولاً مفید سایت شما هدایت میکنید.
افزایش زمان ماندگاری در سایت: کاربران با مشاهده مطالب جذاب دیگر، بیشتر در سایت میچرخند که این یک سیگنال مثبت برای گوگل است.
بهبود نرخ پرش (Bounce Rate): با ارایه پیشنهادهای مرتبط، از خروج سریع کاربران از سایت جلوگیری میکنید.
لینکسازی داخلی قدرتمند: به صورت خودکار به مطالب اصلی خود لینک میدهید و قدرت لینکها (Link Juice) را در سایتتان توزیع میکنید.
مقاله مربوط به آموزش پیدا کردن کلمات کلیدی برای سیو سایت (راهنمای کامل برای افزایش بازدید) را مطالعه کنید
وردپرس به طور پیشفرض تعداد بازدید را ذخیره نمیکند. بنابراین اولین قدم، ایجاد یک فانکشن برای شمارش و ذخیره این اطلاعات است.
کد زیر را به فایل functions.php قالب فرزند (Child Theme) خود اضافه کنید. (همیشه از قالب فرزند استفاده کنید تا با بروزرسانی قالب اصلی، کدهای شما از بین نروند).
// تابع برای ثبت و به روزرسانی تعداد بازدید پست
function track_post_views($post_id) {
if ( !is_single() ) return; // فقط برای صفحات تک پست اجرا شود
if ( empty($post_id) ) {
global $post;
$post_id = $post->ID;
}
$count_key = 'post_views_count';
$count = get_post_meta($post_id, $count_key, true);
if ($count == '') {
delete_post_meta($post_id, $count_key);
add_post_meta($post_id, $count_key, '۱');
} else {
$count++;
update_post_meta($post_id, $count_key, $count);
}
}
// اجرای تابع روی تک پستها
add_action('wp_head', 'track_post_views');
این کد یک فیلد سفارشی (Custom Field) به نام post_views_count برای هر پست ایجاد میکند و هر بار که آن پست مشاهده میشود، عدد این فیلد را یک واحد افزایش میدهد.
حالا باید یک کویری (Query) بنویسیم که پستها را بر اساس تعداد بازدید مرتب کند. ما این کار را در یک تابع جداگانه انجام میدهیم تا بتوانیم آن را در هر جایی فراخوانی کنیم.
کد زیر را نیز به فایل functions.php اضافه کنید:
// تابع برای واکشی مطالب پربازدید
function get_popular_posts($posts_count = ۵) {
$args = array(
'post_type' => 'post', // نوع محتوا: پست
'meta_key' => 'post_views_count', // فیلد سفارشی که ایجاد کردیم
'orderby' => 'meta_value_num', // مرتب سازی بر اساس عدد
'order' => 'DESC', // به صورت نزولی (بیشترین بازدید اول)
'posts_per_page' => $posts_count, // تعداد پست ها (پیش فرض: ۵)
'ignore_sticky_posts' => true // پست های چسبیده را در نظر نگیر
);
$popular_posts = new WP_Query($args);
return $popular_posts;
}
توضیح پارامترها:
$posts_count: تعداد پستهایی که میخواهید نمایش دهید (پیشفرض ۵).
‘meta_key’: همان کلید فیلد سفارشی ما است.
‘orderby’ => ‘meta_value_num’: به وردپرس میگوید بر اساس مقدار عددی فیلد سفارشی مرتبسازی کند.
حالا میتوانیم تابع get_popular_posts را در هر بخشی از قالب خود فراخوانی کنیم. برای مثال، میخواهیم آن را در sidebar.php نمایش دهیم.
به فایل sidebar.php قالب خود بروید و کد زیر را در محل مناسب قرار دهید:
<?php
// دریافت ۵ مطلب پربازدید
$popular_posts = get_popular_posts(۵);
if ($popular_posts->have_posts()) :
?>
<div class="widget popular-posts-widget">
<h۳ class="widget-title">مطالب پربازدید</h۳>
<ul>
<?php while ($popular_posts->have_posts()) : $popular_posts->the_post(); ?>
<li>
<!-- لینک سازی داخلی به مطلب -->
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
<?php the_title(); ?>
</a>
<!-- نمایش تعداد بازدید (اختیاری) -->
<span class="view-count">(<?php echo get_post_meta(get_the_ID(), 'post_views_count', true); ?> بازدید)</span>
</li>
<?php endwhile; ?>
</ul>
</div>
<?php wp_reset_postdata(); // بازنشانی کویری اصلی ?>
<?php endif; ?>
نکات مهم این بخش (لینکسازی داخلی و سیو):
استفاده از تگ <a> با the_permalink(): این کار یک لینک داخلی استاندارد و معتبر به هر یک از پستهای پربازدید ایجاد میکند.
ویژگی title در لینک: با استفاده از the_title_attribute()، یک متن توضیحی برای لینک قرار میدهیم که هم برای سیو مفید است و هم هنگام هاور کردن موس، به کاربر نمایش داده میشود.
متن لینک (Anchor Text): استفاده از the_title() به عنوان انکرتکست، یک انکرتکست مرتبط و طبیعی ایجاد میکند که برای گوگل بسیار قابل درک است.
ساختار لیست <ul> و <li>: این کار از نظر معنایی (Semantic HTML) صحیح است و به موتورهای جستجو در درک ساختار لیست کمک میکند.
برای زیباتر شدن ظاهر لیست، میتوانید از CSS استفاده کنید. کد زیر را به فایل style.css قالب خود اضافه کنید:
.popular-posts-widget {
background: #f۹f۹f۹;
padding: ۱۵px;
border-radius: ۵px;
margin-bottom: ۲۰px;
}
.popular-posts-widget .widget-title {
font-size: ۱.۲em;
border-bottom: ۲px solid #e۶۷e۲۲;
padding-bottom: ۵px;
margin-top: ۰;
}
.popular-posts-widget ul {
list-style: none;
padding-left: ۰;
margin: ۰;
}
.popular-posts-widget li {
margin-bottom: ۱۰px;
padding-bottom: ۱۰px;
border-bottom: ۱px dashed #ddd;
}
.popular-posts-widget li:last-child {
margin-bottom: ۰;
border-bottom: none;
}
.popular-posts-widget li a {
text-decoration: none;
font-weight: bold;
color: #۳۳۳;
}
.popular-posts-widget li a:hover {
color: #e۶۷e۲۲;
}
.popular-posts-widget .view-count {
font-size: ۰.۸em;
color: #۷۷۷;
display: block;
}
سوال: آیا این روش با کش (Cache) پلاگین ها تداخل ندارد؟
چرا، دارد. اگر از پلاگینهای کش مانند W۳ Total Cache یا WP Rocket استفاده میکنید، ممکن است شمارش بازدید به درستی کار نکند، زیرا صفحات کش شده هستند و کد PHP شما هر بار اجرا نمیشود. برای رفع این مشکل، معمولاً باید از متدهای جایگزین مانند استفاده از AJAX یا قابلیتهای خود پلاگین کش استفاده کنید.
آآیا میخواهید برخی مطالب، برگه ها و پست های سایت خود را به صورت کامل کپی کنید مقاله افزونه Duplicate Page راهنمای کامل کپی و شبیهسازی صفحات وردپرس را مطالعه کنید
جمعبندی نهایی
با دنبال کردن این آموزش، شما موفق شدید:
یک سیستم شمارش بازدید سفارشی و سبک ایجاد کنید.
یک کویری بهینه برای واکشی مطالب پربازدید بنویسید.
این لیست را با رعایت اصول لینکسازی داخلی در سایت خود نمایش دهید.
یک ابزار قدرتمند برای افزایش تعامل کاربر و بهبود سیو بدون وابستگی به هیچ افزونهای بسازید.
این روش نه تنها سرعت سایت شما را تحت تأثیر منفی قرار نمیدهد، بلکه کنترل کاملی در اختیار شما یک توسعهدهنده قرار میدهد. حالا میتوانید با خیال راحت بخش مطالب پربازدید خود را که یک نقطه کلیدی در استراتژی سیو داخلی است، راهاندازی کنید.





