• 12-08-2012, 02:50:01
    #1
    Merhaba,

    Wordpress te konu başlıklarını otomatik olarak etiketlere girdirmek istiyorum. Bununla ilgili olarak internette şu şekilde bir kod buldum. Bu kod normalde güzel çalışıyor fakat özel karakterleride etiketlere ekliyor, bunların süzmesini nasıl yaparız?

    Örnek;

    DÜĞÜN (FILIZ YILMAZ – ÜNAL YILDIRIM) bu şekilde bir konu başlığı girdiğimde bunun içerisinden parantez ve tire işaretleri gibi özel karakterleri atacak ve sadece diğer kelimeleri etiketlere girecek.

    // Otomatik Etiketleyici
    function wpu_otomatik_etiket($post_ID){
     	$baslik = get_the_title($post_ID);
     	$bol = explode(" ", $baslik);
     			
    	$kac = count($bol)-1;
     	$karaktersayi = "4";
     	for($i=0; $i<$kac; $i++){
     		$tag[$i] = $bol[$i];
     		if(strlen($bol[$i]) <= $karaktersayi){
     			unset($tag[$i]);
     		}
     	}
     	$tags = array_values($tag);
     	wp_set_post_tags($post_ID, $tags, true);
    }
    add_action('publish_post', 'wpu_otomatik_etiket');
  • 12-08-2012, 02:56:37
    #2
    str_replace(); i inceleyebilirsin.
  • 12-08-2012, 04:04:39
    #3
    UniFroG adlı üyeden alıntı: mesajı görüntüle
    str_replace(); i inceleyebilirsin.
    //Konu başlıklarını otomatik etiket yap.
    	function wpu_otomatik_etiket($post_ID){
     	$baslik = get_the_title($post_ID);
    
    $baslik=str_replace("–"," ",$baslik);
    $baslik=str_replace("("," ",$baslik);
    $baslik=str_replace(")"," ",$baslik);
    
     	$bol = explode(" ", $baslik);
     	$kac = count($bol)-1;
     	$karaktersayi = "4";
     	for($i=0; $i<$kac; $i++){
     		$tag[$i] = $bol[$i];
     		if(strlen($bol[$i]) <= $karaktersayi){
     			unset($tag[$i]);
     		}
     	}
     	$tags = array_values($tag);
     	wp_set_post_tags($post_ID, $tags, true);
    }
    add_action('publish_post', 'wpu_otomatik_etiket');
    bu şekilde kullandım ama hala istediğim gibi çalışmıyor. Gene parantez ve tireleri süzmeden etiketlere ekliyor.
  • 12-08-2012, 13:08:57
    #4
    function seo_link($url)
    {
     
    $url = trim($url);
    $find = array('<b>', '</b>');
    $url = str_replace ($find, '', $url);
    $url = preg_replace('/<(\/{0,1})img(.*?)(\/{0,1})\>/', 'image', $url);
    $find = array(' ', '&amp;quot;', '&amp;amp;', '&amp;', '\r\n', '\n', '/', '\\', '+', '<', '>');
    $url = str_replace ($find, '-', $url);
    $find = array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ë', 'Ê');
    $url = str_replace ($find, 'e', $url);
    $find = array('í', 'ý', 'ì', 'î', 'ï', 'I', 'Ý', 'Í', 'Ì', 'Î', 'Ï','İ','ı');
    $url = str_replace ($find, 'i', $url);
    $find = array('ó', 'ö', 'Ö', 'ò', 'ô', 'Ó', 'Ò', 'Ô');
    $url = str_replace ($find, 'o', $url);
    $find = array('á', 'ä', 'â', 'à', 'â', 'Ä', 'Â', 'Á', 'À', 'Â');
    $url = str_replace ($find, 'a', $url);
    $find = array('ú', 'ü', 'Ü', 'ù', 'û', 'Ú', 'Ù', 'Û');
    $url = str_replace ($find, 'u', $url);
    $find = array('ç', 'Ç');
    $url = str_replace ($find, 'c', $url);
    $find = array('þ', 'Þ','ş','Ş');
    $url = str_replace ($find, 's', $url);
    $find = array('ð', 'Ð','ğ','Ğ');
    $url = str_replace ($find, 'g', $url);
    $find = array('/[^A-Za-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
    $repl = array('', '-', '');
    $url = preg_replace ($find, $repl, $url);
    $url = str_replace ('--', '-', $url);
    $url = strtolower($url);
    return $url;
    }
    yukarıdaki kodu funcions.php ye yapıştırın ardından şu satırı

     $baslik = get_the_title($post_ID);
    şöyle değiştirin

    $baslik = seo_link(get_the_title($post_ID));
  • 15-08-2012, 00:02:41
    #5
    Hocam,

    Verdiğiniz kodu functions.php ye ekledim. Diğer kodu da dediğiniz gibi değiştirdim ama hiç bir etiket eklemedi bu sefer.

    function seo_link($url)
    {
     
    $url = trim($url);
    $find = array('<b>', '</b>');
    $url = str_replace ($find, '', $url);
    $url = preg_replace('/<(\/{0,1})img(.*?)(\/{0,1})\>/', 'image', $url);
    $find = array(' ', '&amp;quot;', '&amp;amp;', '&amp;', '\r\n', '\n', '/', '\\', '+', '<', '>');
    $url = str_replace ($find, '-', $url);
    $find = array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ë', 'Ê');
    $url = str_replace ($find, 'e', $url);
    $find = array('í', 'ý', 'ì', 'î', 'ï', 'I', 'Ý', 'Í', 'Ì', 'Î', 'Ï','İ','ı');
    $url = str_replace ($find, 'i', $url);
    $find = array('ó', 'ö', 'Ö', 'ò', 'ô', 'Ó', 'Ò', 'Ô');
    $url = str_replace ($find, 'o', $url);
    $find = array('á', 'ä', 'â', 'à', 'â', 'Ä', 'Â', 'Á', 'À', 'Â');
    $url = str_replace ($find, 'a', $url);
    $find = array('ú', 'ü', 'Ü', 'ù', 'û', 'Ú', 'Ù', 'Û');
    $url = str_replace ($find, 'u', $url);
    $find = array('ç', 'Ç');
    $url = str_replace ($find, 'c', $url);
    $find = array('þ', 'Þ','ş','Ş');
    $url = str_replace ($find, 's', $url);
    $find = array('ð', 'Ð','ğ','Ğ');
    $url = str_replace ($find, 'g', $url);
    $find = array('/[^A-Za-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
    $repl = array('', '-', '');
    $url = preg_replace ($find, $repl, $url);
    $url = str_replace ('--', '-', $url);
    $url = strtolower($url);
    return $url;
    }
    
    
    //Konu başlıklarını otomatik etiket yap. 
        function wpu_otomatik_etiket($post_ID){ 
    
        $baslik = seo_link(get_the_title($post_ID)); 
    
         $bol = explode(" ", $baslik); 
         $kac = count($bol)-1; 
         $karaktersayi = "4"; 
         for($i=0; $i<$kac; $i++){ 
             $tag[$i] = $bol[$i]; 
             if(strlen($bol[$i]) <= $karaktersayi){ 
                 unset($tag[$i]); 
             } 
         } 
         $tags = array_values($tag); 
         wp_set_post_tags($post_ID, $tags, true); 
    } 
    add_action('publish_post', 'wpu_otomatik_etiket');
  • 25-08-2012, 15:24:52
    #6
    yardımcı olabilecek birisi yok mu acaba?
  • 25-08-2012, 23:24:46
    #7
    takipteyim..