Kalyoncu adlı üyeden alıntı: mesajı görüntüle
Kolay gelsin arkadaşlar,

Bir sorum var. wordpress yazılarda "başlık" yazmak istrmiyorum, konu içerisinden bir kaç kelimeyi (rastgele) sistem kendisi başlık olarak seçmesini istiyorum.

Böyle bir eklenti veya php kod biliyor musunuz ? yapılabilir mi ?

--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 13:15:54 -->-> Daha önceki mesaj 13:06:12 --

Çözdüm arkadaşlar, belki ileride arayan olur o yüzden şu eklenti işinizi görücektir; https://wordpress.org/plugins/auto-generate-title/

--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 14:16:55 -->-> Daha önceki mesaj 13:15:54 --

Bu eklentide tam istediğim gibi olmadı.

İlk 30 krakteri alıyor..

Makale içerisinden rastgele 30 krakter seçmesini istiyorum halbuki.

kod şu şekilde

<?php


add_shortcode("agt", "agt_shortcode");  
function agt_shortcode( $atts, $content = null ) {  
    return $content;  
} 

add_filter( 'wp_insert_post_data' , 'auto_generate_title' , '99', 2 );
function auto_generate_title( $data , $postarr ) 
{
    $title_of_post = ltrim($data['post_title']);
    $length_of_title = strlen($title_of_post);
    $postdata = ltrim($data['post_content']);
    if($length_of_title<1)
    {
                $matchPattern = "/\[agt\](.*?)\[\/agt\]/";
        preg_match_all($matchPattern, $postdata, $foundIt, PREG_PATTERN_ORDER);
        if (isset($foundIt[1][0]))
            $data['post_title'] =  $foundIt[1][0];
        else
            $data['post_title'] = substr($postdata,0,30);
    }
    return $data;
}    
?>
ilk 30 krakter yerine random nasıl yapabiliriz bunu ?
*
add_shortcode("agt", "agt_shortcode");* 
function agt_shortcode( $atts, $content = null ) {* 
****return $content;* 
} 
*
add_filter( 'wp_insert_post_data' , 'auto_generate_title' , '99', 2 );
function auto_generate_title( $data , $postarr ) 
{
****$title_of_post = ltrim($data['post_title']);
****$length_of_title = strlen($title_of_post);
****$postdata = ltrim($data['post_content']);
****if($length_of_title<1)
****{
****************$matchPattern = "/\[agt\](.*?)\[\/agt\]/";
********preg_match_all($matchPattern, $postdata, $foundIt, PREG_PATTERN_ORDER);
********if (isset($foundIt[1][0]))
************$data['post_title'] =* $foundIt[1][0];
********else

			$metin = str_replace('.  ','.',$postdata);
			$metin = str_replace('. ','.',$metin);
			$metin = str_replace('.','. ',$metin);

			$sadecemetin = preg_replace("@[^a-z0-9\-_şıüğçöÖİŞĞÜÇ ]+@i","",$metin);

			$bol = @explode(' ',$sadecemetin);
			$kacbosluk = count($bol);
			$rasgelebaslangicbul = rand (20,$kacbosluk); // 20 değeri kaçıncı kelimeden sonra başlasın ?

			for ($y=$rasgelebaslangicbul; $y<$kacbosluk; $y++) {
				$icerikcumle[] = $bol[$y];  
			}
			$cumletopla = implode(' ',$icerikcumle);
			$sonbaslik = mb_substr($cumletopla,0,80,'UTF-8');

			$kelimesonsayi = mb_strpos($sonbaslik,' ',30,'UTF-8');
			$kelimedebitir = mb_substr($sonbaslik,0,$kelimesonsayi,'UTF-8');  
************$data['post_title'] = $kelimedebitir;
****}
****return $data;
}***
Heralde bu işini görür üstad, kodları kendine göre düzenlersin.

Edit : Kodlar eklentiden dolayı bozuk çıkıyor sanırım **** değerleri yok.

http://pasted.co/c68819d1

Şurdan sağlıklı halini alabilirsin.