• 28-07-2013, 02:46:23
    #1
    Üyeliği durduruldu
    Wordpress'de etiketleri göstermek içni malum basit bir kodumuz var ama içinde sayı geçiyorsa o etiket gizlensin istiyorum bunu nasıl yaparım yardımcı olur musunuz?
  • 28-07-2013, 03:46:07
    #2
    Etiketleri the_tags() fonksiyonu ile mi gösteriyorsunuz?
    Eğer öyleyse, bu fonksiyon ile istediğinizi yapamazsınız.
    http://codex.wordpress.org/Function_...e/get_the_tags adresinde anlatılan fonksiyonu kullanarak etiketleri gösterirseniz, araya bir if cümlesi ekleyip, eğer içinde sayı varsa gösterme diyebilirsiniz.
  • 28-07-2013, 04:48:09
    #3
    Üyeliği durduruldu
    yakuphan adlı üyeden alıntı: mesajı görüntüle
    Etiketleri the_tags() fonksiyonu ile mi gösteriyorsunuz?
    Eğer öyleyse, bu fonksiyon ile istediğinizi yapamazsınız.
    http://codex.wordpress.org/Function_...e/get_the_tags adresinde anlatılan fonksiyonu kullanarak etiketleri gösterirseniz, araya bir if cümlesi ekleyip, eğer içinde sayı varsa gösterme diyebilirsiniz.
    the_tags() ile gösterebiliyorum ancak sayıları göstermemek için kullanacağım if cümlesini bilmiyorum.
  • 28-07-2013, 09:46:51
    #4
    Aşağıdaki kodları öncelikle temanızın functions.php dosyasına ekleyin.
    function yakuphoca_etiket_listele( $before = null, $sep = ', ', $after = '' ) {
    	if ( null === $before )
    		$before = __('Tags: ');
    	$id = 0;
    	$taxonomy = 'post_tag';
    	$terms = get_the_terms( $id, $taxonomy );
    
    	if ( is_wp_error( $terms ) )
    		return $terms;
    
    	if ( empty( $terms ) )
    		return false;
    
    	foreach ( $terms as $term ) {
    		$link = get_term_link( $term, $taxonomy );
    		if (!preg_match('#[0-9]#',$term->name)){ 
    			if ( is_wp_error( $link ) )
    				return $link;
    			$term_links[] = '<a href="' . esc_url( $link ) . '" rel="tag">' . $term->name . '</a>';
    		}
    	}
    
    	$term_links = apply_filters( "term_links-$taxonomy", $term_links );
    
    	echo $before . join( $sep, $term_links ) . $after;
    }
    Single.php ya da yazının etiketlerini hangi dosyada gösteriyorsanız o dosyayı açıp, the_tags fonksiyonu yerine yakuphoca_etiket_listele yazın. Yani eğer dosyada
    the_tags('yazının etiketleri'); yazıyorsa bunu
    yakuphoca_etiket_listele('yazının etiketleri'); şekline dönüştürün yani sadece the_tags ifadesini değiştirin. Kod etiket isminin herhangi bir yerinde bir rakam varsa o etiketi listeye dahil etmeyecektir.
  • 07-08-2013, 08:51:13
    #5
    Kodlar için teşekkürler yanlız şöyle bir problem çıktı. Eğer o konu içersinde sayısız ayet yoksa hata veriyor:
    Warning: join() [function.join]: Invalid arguments passed in /home/content/52/10007652/html/*******.php on line 31
    Bunun için bir şey yapabilir miyiz yoksa hata vermek yerine göstermesin?
  • 07-08-2013, 11:38:52
    #6
    yusufaslan44 adlı üyeden alıntı: mesajı görüntüle
    Kodlar için teşekkürler yanlız şöyle bir problem çıktı. Eğer o konu içersinde sayısız ayet yoksa hata veriyor:
    Warning: join() [function.join]: Invalid arguments passed in /home/content/52/10007652/html/*******.php on line 31
    Bunun için bir şey yapabilir miyiz yoksa hata vermek yerine göstermesin?
    aşağıdaki iki satır yerine
        $term_links = apply_filters( "term_links-$taxonomy", $term_links ); 
    
        echo $before . join( $sep, $term_links ) . $after;
    if ($term_links) {
        $term_links = apply_filters( "term_links-$taxonomy", $term_links ); 
    
        echo $before . join( $sep, $term_links ) . $after; 
    }
    Eğer sayı olmayan etiket kalırsa yazdır, yoksa zaten bir şey göstermeyecek.