در دنیای مملو از اطلاعات جامعه مجازی٬ گاه یافتن مطالب دلخواه کمی دشوار است که البته با تکنیکهایی سعی شده است دسترسی به اطلاعات را سریعتر و آسانتر نمود، یکی از این روشها استفاده از برچسب (Tag) است که بر اساس آن کلمات کلیدی هر مطلب به عنوان برچسب آن مطلب در نظر گرفته میشوند٬ که میتوان با جستجوی آن کلمات کلیدی که از متن مطلب استخراج شدهاند به مطلب موردنظر رسید.
در سری آموزش های که برای قرار دادن محدودیت در تعداد برچسب های مطالب وردپرس و همینطور نمایش مطالب مرتبط در وردپرس بر اساس برچسب ها قرار داده بودیم حال نوبت به آموزش طریقه قرار دادن برچسب ها به صورت لیست بازشنوده یا (Drop Down) رسیده است.
برای این کار کد زیر رو در فایل functions.php قالب بگذارید :
<?php
function dropdown_tag_cloud( $args = '' ) {
$defaults = array(
'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,
'format' => 'flat', 'orderby' => 'name', 'order' => 'ASC',
'exclude' => '', 'include' => ''
);
$args = wp_parse_args( $args, $defaults );
$tags = get_tags( array_merge($args, array('orderby' => 'count', 'order' => 'DESC')) ); // Always query top tags
if ( empty($tags) )
return;
$return = dropdown_generate_tag_cloud( $tags, $args ); // Here's where those top tags get sorted according to $args
if ( is_wp_error( $return ) )
return false;
else
echo apply_filters( 'dropdown_tag_cloud', $return, $args );
}
function dropdown_generate_tag_cloud( $tags, $args = '' ) {
global $wp_rewrite;
$defaults = array(
'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,
'format' => 'flat', 'orderby' => 'name', 'order' => 'ASC'
);
$args = wp_parse_args( $args, $defaults );
extract($args);
if ( !$tags )
return;
$counts = $tag_links = array();
foreach ( (array) $tags as $tag ) {
$counts[$tag->name] = $tag->count;
$tag_links[$tag->name] = get_tag_link( $tag->term_id );
if ( is_wp_error( $tag_links[$tag->name] ) )
return $tag_links[$tag->name];
$tag_ids[$tag->name] = $tag->term_id;
}
$min_count = min($counts);
$spread = max($counts) - $min_count;
if ( $spread <= 0 )
$spread = 1;
$font_spread = $largest - $smallest;
if ( $font_spread <= 0 )
$font_spread = 1;
$font_step = $font_spread / $spread;
// SQL cannot save you; this is a second (potentially different) sort on a subset of data.
if ( 'name' == $orderby )
uksort($counts, 'strnatcasecmp');
else
asort($counts);
if ( 'DESC' == $order )
$counts = array_reverse( $counts, true );
$a = array();
$rel = ( is_object($wp_rewrite) && $wp_rewrite->using_permalinks() ) ? ' rel="tag"' : '';
foreach ( $counts as $tag => $count ) {
$tag_id = $tag_ids[$tag];
$tag_link = clean_url($tag_links[$tag]);
$tag = str_replace(' ', ' ', wp_specialchars( $tag ));
$a[] = " <option value='$tag_link'>$tag ($count)</option>";
}
switch ( $format ) :
case 'array' :
$return =& $a;
break;
case 'list' :
$return = "<ul class='wp-tag-cloud'>
<li>";
$return .= join("</li>
<li>", $a);
$return .= "</li>
</ul>
";
break;
default :
$return = join("
", $a);
break;
endswitch;
return apply_filters( 'dropdown_generate_tag_cloud', $return, $tags, $args );
}
?>
سپس در جایی که می خواهید نمایش دهید کد زیر را وارد کنید :
<select name="tag-dropdown" onchange="document.location.href=this.options[this.selectedIndex].value;">
<option value="#">Tags</option>
<?php dropdown_tag_cloud('number=0&order=asc'); ?>
</select>
توضیح کوتاه در مورد برچسب ها :
مثال – بهمتن زیر توجه کنید:
قالب Bimber رو فارسیشو پیدا کردم. چطوری نصبش کنم چکار کنم که مشکل فونت نداشته باشم. در حال حاضر اندازه فونت ها مشکل داره و اینکه زیر حرف “ی” دونقطه قرار داره خواهش می کنم راهنماییم کنید
برچسبهای متن بالا را میتوان اینچنین انتخاب کرد: پوسته فارسی+Bimber+قلم
چگونه برچسبها را بهموضوعات و نوشتههایمان اضافه کنیم؟
هنگام ایجاد موضوع جدید
در پایین صفحه٬ کادری میبینید تحت عنوان برچسبها٬ که میتوانید برچسبهای خود را در آن بنویسید. (برچسبهای مختلف را با علامت بهعلاوه [,] از هم جدا کنید)
پس از ایجاد موضوع جدید
وارد موضوع شوید و در ستون سمت چپ٬ زیر بخش برچسبها کادر کوچکی وجود دارد که میتوانید برچسبهای موضوع را در آنجا بنویسید٬ سپس دکمهی «افزودن» را فشار دهید تا برچسبها بهموضوع اضافه شوند.
موفق باشید.
این نوشته نمایش برچسب ها به صورت منوی باز شونده برای اولین بار در بیست اسکریپت منتشر شده است.