داشتم روی یک قالب پریمیوم وردپرس کار میکردم که قراره هفته آینده منتشرش کنم. وقتی داشتم قالب نقشه سایت رو میساختم متوجه شدم باید لیست همه برچسبهایی که در سایت استفاده شدند رو هم اضافه کنم. بعد از اینکه ساخت صفحه نقشه سایت تموم شد، فکر کردم بهتره کدی رو که برای نمایش لیست برچسبهای وردپرس استفاده کردم با شما هم به اشتراک بذارم. در ادامه میتونید این کد رو ببینید…
راهنمای مطالعه:
ساخت یک لیست UL با همه برچسبها
کافیه کد زیر رو هرجایی توی فایل قالبتون که دوست دارید لیست برچسبها نمایش داده بشه، قرار بدید. برای اطلاعات بیشتر، میتونید مستندات get_tags رو هم ببینید.
<h2>Tags</h2>
<ul>
<?php
$tags = get_tags();
if ( $tags ) :
foreach ( $tags as $tag ) : ?>
<li><a href="<?php echo esc_url( get_tag_link( $tag->term_id ) ); ?>" title="<?php echo esc_attr( $tag->name ); ?>"><?php echo esc_html( $tag->name ); ?></a></li>
<?php endforeach; ?>
<?php endif; ?>
</ul>
این کد لیستی از همه برچسبهایی که توی سایت ثبت شدهاند رو نشون میده. اما اگه فقط میخواهید برچسبهای یک نوشته خاص رو نمایش بدید، بهتره از تابع get_the_tag_list استفاده کنید. مثل نمونه پایین:
echo get_the_tag_list('<p>Tags: ',', ','</p>');
همچنین، قطعه کد اول از تابع get_tags استفاده میکنه که مخصوص برچسبهای وردپرسه. اما اگه میخواهید لیست هر نوع طبقهبندی (taxonomies) دیگه رو هم نمایش بدید، میتونید از تابع get_terms استفاده کنید تا آرایهای از همه موارد مربوط به اون طبقهبندی رو بگیرید؛ مثلا اگر پست تایپ اختصاصی دارید که برچسب جداگانه داره، میتونید با get_terms همه برچسبهای اون رو نشون بدید.
$tags = get_terms( 'portfolio_tags', array(
'hide_empty' => false,
) );
نمایش Tag Cloud در هر جای وردپرس
یک راه دیگه هم اینه که از ابزار پیشفرض Tag Cloud وردپرس استفاده کنید تا لیست لینکهای برچسبهاتون نمایش داده بشه؛ فقط بزرگترین و کوچکترین مقدار رو برابر قرار بدید تا ابعاد تگها تغییر نکنه. میتونید به پست دیگهام درباره نمایش دستی tag cloud در وردپرس سر بزنید یا نمونه کد زیر رو ببینید تا tag cloud رو هرجایی که دوست دارید اضافه کنید.
<?php wp_tag_cloud( array(
'smallest' => 1, // size of least used tag
'largest' => 1, // size of most used tag
'unit' => 'em', // unit for sizing the tags
'number' => 45, // displays at most 45 tags
'orderby' => 'name', // order tags alphabetically
'order' => 'ASC', // order tags by ascending order
'taxonomy' => 'post_tag' // you can even make tags for custom taxonomies
) ); ?>
- اگر تعداد برچسبها در سایتتان خیلی زیاد است و نمیخواهید همه آنها را نمایش دهید، میتوانید از ویژگی
'number'در تابعget_tags()یاget_terms()استفاده کنید. به طور مثال:
$tags = get_tags(array('number' => 20));
این کد فقط ۲۰ برچسب را نمایش میدهد.
- برای زیباسازی بیشتر لیست برچسبها، پیشنهاد میکنم استایل اختصاصی به لیست
<ul>و لینکهای آن اضافه کنید. مثلاً:
ul.tag-list { margin:0; padding:0; list-style:none; }
ul.tag-list li { display:inline-block; margin:2px; }
ul.tag-list li a { background:#f3f3f3; padding:3px 10px; border-radius:4px; color:#333; text-decoration:none; }
ul.tag-list li a:hover { background:#e0e0e0; }
- اگر میخواهید برچسبها را بر اساس تعداد نوشتههایشان (پرکاربردترین برچسبها) مرتب کنید، کافی است پارامتر
'orderby' => 'count'و'order' => 'DESC'به آرایه پارامترها اضافه کنید:
$tags = get_tags(array(
'orderby' => 'count',
'order' => 'DESC',
'number' => 10
));
این کد ۱۰ برچسبی که بیشتر از همه استفاده شدهاند را به ترتیب نمایش میدهد.
- برای نمایش توضیح هر برچسب (tag description) زیر نام برچسب، میتوانید بخش زیر را به کد حلقه اضافه کنید:
foreach ( $tags as $tag ) {
echo '<li><a href="' . get_tag_link( $tag ) . '">' . $tag->name . '</a>';
if ( $tag->description ) {
echo '<br><small>' . $tag->description . '</small>';
}
echo '</li>';
}
- برای امکانات پیشرفتهتر (مثل جستجو بین برچسبها یا فیلتر بر اساس طول نام)، میتوانید با استفاده از WP_Query و meta query یا فیلترهای دلخواه، لیست خود را سفارشیتر کنید.
- ضمناً، افزونههایی مثل “Simple Tags” یا “Tag Cloud Widget” در مخزن وردپرس وجود دارند که امکانات اضافی برای مدیریت و نمایش پیشرفته تگها در اختیار شما قرار میدهند.
نمونه کاربردی: نمایش برچسبهای محبوب در سایدبار
برای نمایش برچسبهای محبوب با استایل زیبا در سایدبار قالبتان میتوانید از کد زیر استفاده کنید:
<ul class="tag-list">
<?php
$tags = get_tags(array('orderby' => 'count', 'order' => 'DESC', 'number' => 15));
foreach ( $tags as $tag ) {
echo '<li><a href="' . get_tag_link( $tag ) . '">' . $tag->name . ' (' . $tag->count . ')</a></li>';
}
?>
</ul>
این کد پربازدیدترین برچسبها را همراه تعداد مطالب نمایش میدهد. میتوانید با CSS سفارشیسازی بیشتری انجام دهید تا ظاهری متناسب با قالب خود داشته باشید.
توجه به سئوی برچسبها
نمایش بیش از حد یا بیهدف برچسبها میتواند باعث صفحات کمارزش و تکراری در سایت شود. پیشنهاد میشود فقط برچسبهای مرتبط و پرکاربرد را به کاربران نمایش دهید و صفحات برچسب سایت را noindex کنید، مگر اینکه استراتژی سئوی مشخصی داشته باشید.

دیدگاه و پرسش