Etiketleri Dropdown Menüde Gösterin

Blogunuzun ana sayfasında etiketleri nasıl sergiliyorsunuz? Çoğumuz etiket bulutu kullanıyor. Peki ya daha derli toplu duran, etiket bulutunun okunamama sorununu çözen bir etiket sergileme yöntemi yok mu? Alt alta yazmak tabii ki en kolayı fakat çoğumuzun blogunda yüzlerce hatta binlerce etiket var. Bu yazımızda sizlere etiketleri hem çok az yer kaplatıp hem de alt alta dizmenin bir yolu olan dropdown menu(açılır menü) ile kullanmaktan bahsedeceğiz.

Bunun için ilk yapacağımız şey fonksiyon oluşturmak. Aşağıdaki kodları functions.php‘ ye kopyalayın:
<?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(' ', '&nbsp;', wp_specialchars( $tag ));
$a[] = "\t<option value='$tag_link'>$tag ($count)</option>";
}

switch ( $format ) :
case 'array' :
$return =& $a;
break;
case 'list' :
$return = "<ul class='wp-tag-cloud'>\n\t<li>";
$return .= join("</li>\n\t<li>", $a);
$return .= "</li>\n</ul>\n";
break;
default :
$return = join("\n", $a);
break;
endswitch;

return apply_filters( 'dropdown_generate_tag_cloud', $return, $tags, $args );
}
?>

Bitti, artık etiketlerinizi dropdown menüde gösterilmesine yarayan fonksiyonumuzu kullanabilirsiniz. Sadece temanızda görünmesini istediğiniz yeri açın(genelde sidebar.php) ve istediğiniz yerine aşağıdaki kodu kopyalayın:

<select name="tag-dropdown"> <option value="#">Liste d'auteurs</option> </select>

İngilizce’den Türkçe’ye Çeviridir. Orijinal metin: WpHacks.

Bunlar da İlginizi Çekebilir:

Bu yazı Blog İpuçları, Wordpress kategorisine gönderilmiş ve , , , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.

Etiketleri Dropdown Menüde Gösterin için 2 cevap

  1. son şans der ki:

    başarılı bir çalışma tekrardan teşekkurler

  2. gündem der ki:

    name=”tag-dropdown” a başka bir değerin önceden atılıp atılmadığına dikkat edin derim.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>