Wordpress te etiketleri aşaüıdaki kod ile post içinde gösteriyorum.
<?php the_tags('<div class="tags"><strong>Etiket:</strong> ', ', ', '</div>'); ?>
Gösterimde bir kelime sınırı koyabilirmiyim? Etiket sınırı değil kelime sınırı koymak ıstıyorum. Örneğin 50 kelime olunca tag göstermesin. O postun altında 50 kelime kadar tag göstersin istiyorum. Bu mümkünmüdür? Mümkün ise nasıl?
Wordpress etiket listelemede kelime sınırı nasıl koyarız?
9
●1.231
- 08-11-2010, 12:52:40Kimlik doğrulama veya yönetimden onay bekliyor.Aklıma birşey geliyor belki sana bu konuda yol gösterebilir
Buradan the_excerpt fonksiyonun kullanımına bakıp yazında 40 kelime gibi bi limit belirliyip daha sonrasında taglarınıda kalan 10 kelimede limitleyebilirsin.Tag limitlemek içinde bu koda bakabilirsin.
<?php $posttags = get_the_tags(); $count=0; if ($posttags) { foreach($posttags as $tag) { $count++; echo '<a href="'.get_tag_link($tag->term_id).'">'.$tag->name.'</a> '; if( $count >4 ) break; } } ?>bu kodda tagı 4 le limitlemiş bu değeri değiştirerek birşeyler denersen belki bir çözüm olabilir. - 08-11-2010, 14:31:40Ben aynı durumda şu fonksiyonu kullanıyordum: http://tr.php.net/manual/tr/function.substr.php
- 08-11-2010, 15:58:23Üyeliği durduruldupeace adlı üyeden alıntı: mesajı görüntüle
$kactane değişkenine gözükmesini istediğiniz etiket sayısını yazın.
<?php the_tags('<div class="tags"><strong>Etiket:</strong> ', ', ', '</div>'); ?>yerine aşağıdakini kullanın.
<?php $kactane = 3; function etiketci( $before = null, $sep = ', ', $after = '' ) { if ( null === $before ) $before = __('Tags: '); return get_the_tag_list($before, $sep, $after); } $etiketler = etiketci('[etiket]', ', ', '[etiket]'); $etiketler = str_replace('[etiket]','',$etiketler); $etiketbol = explode(', ',$etiketler); $sayisi=count($etiketbol); if ($sayisi>=$kactane+1) { $tags = $etiketbol[0]; for ($sayac = 1; $sayac <= $kactane-1; $sayac++ ) { $tags .= ', ' .$etiketbol[$sayac]; } }else{ $tags = $etiketler; } echo '<div class="tags"><strong>Etiket:</strong> ' .$tags. ' </div>'; ?> - 11-11-2010, 14:11:26Bu kodu ana sayfada deneyince hata veriyor. Birden fazla yazı içerdiğinden, sadece birinci yazının sonunda gösteriyor. İkinci yazının sonunda ise;ChatLakTurK adlı üyeden alıntı: mesajı görüntüle
Fatal error: Cannot redeclare etiketci() (previously declared in index.php:39) in /index.php on line 39
39.satır:
function etiketci( $before = null, $sep = ', ', $after = '' ) { - 11-11-2010, 14:26:56Üyeliği durdurulduben single.php için düşünerek bunu yazmıştım.Inch adlı üyeden alıntı: mesajı görüntüle
index.php veya kategori içeriğinin listelendiği bir sayfada kullanacaksanız
<?php $kactane = 3; function etiketci( $before = null, $sep = ', ', $after = '' ) { if ( null === $before ) $before = __('Tags: '); return get_the_tag_list($before, $sep, $after); } ?>bu kodu sayfanın üstünde bir yere koyun.
daha sonrada
<?php the_tags('<div class="tags"><strong>Etiket:</strong> ', ', ', '</div>'); ?>bunu
aşağıdaki kodla değiştirin.
<?php $etiketler = etiketci('[etiket]', ', ', '[etiket]'); $etiketler = str_replace('[etiket]','',$etiketler); $etiketbol = explode(', ',$etiketler); $sayisi=count($etiketbol); if ($sayisi>=$kactane+1) { $tags = $etiketbol[0]; for ($sayac = 1; $sayac <= $kactane-1; $sayac++ ) { $tags .= ', ' .$etiketbol[$sayac]; } }else{ $tags = $etiketler; } echo '<div class="tags"><strong>Etiket:</strong> ' .$tags. ' </div>'; ?>