• 08-01-2011, 15:23:47
    #10
    Düzenleme: Tabii ki PHP kodunu eksik yazmışım.

    Sonuç istediğim şekilde. Çok teşekkürler yakuphan.
  • 08-01-2011, 16:07:27
    #11
    http://tinyurl.com/39wu7rj
    http://tinyurl.com/2va3h9n
    adreslerindeki yazılarımı inceleyerek, WP ile veritabanından bilgi nasıl alınır, onu öğrenip, yapın.
    En basitinden
    function kisi_bilgi($atts, $content = null) { 
     global $wpdb;
    
        extract(shortcode_atts(array(  
            "id" => '0'  
        ), $atts));  
    // veritabanınızdan bilgileri çeken kodlarınız.  
    // $id değişkeni yazıda belirtilen ID'yi içinde tutar, bunu veritabanı  
    //SQL cümlenizde kullanabilirsiniz.  
    
    
    //Tablomuzun adını, prefix'e bağlı olarak $wpdb->okn//haline getiriyoruz
    $wpdb->okn = $wpdb->prefix . 'okn';
    $id= (int) $id;
    $sonuclar = $wpdb->get_results("SELECT * FROM $wpdb->ipucu WHERE kisi_id = \'$id\'  ");
     if ($sonuclar) {
       $liste='<ul>';
       foreach ($sonuclar as $sonuc) {
    	$liste .= '<li>'.$sonuc->baslik.'</li>';
                //baslik ifadesi tablonuzdaki baslik isimli alanı temsil eder, tablo yapınıza göre değiştirmelisiniz.
       }
       $liste .='</ul>';
     }
    
        return $liste;  
     //$liste değişkeni de ekrana basmak istediğiniz bilgileri tutan değişken  
    }  
    
    add_shortcode("kisi", "kisi_bilgi");
    Tablo yapınıza ve yapmak istediğiniz listelemeye göre kodu değiştirmeniz gerekiyor.
  • 08-01-2011, 17:11:29
    #12
    Önceki mesajımda da yazdığım gibi, şimdilik veriyi çekip mesajda gösterdim. Listeleme veya biçimlendirmeyi de hallederim umarım.

    Tekrar teşekkürler...
  • 14-01-2011, 09:57:30
    #13
    Şöyle bir sorun var: [kisi id="x"] şeklinde veriyi çekip mesajda gösteriyorum ama aynı veri header bölümünün üstünde de görünüyor. Yani yazıdan bağımsız şekilde, aynı sayfada aynı veri 2 defa görünüyor. Temayla alakalı bir durum mu bu acaba?
  • 14-01-2011, 16:23:51
    #14
    kisi_bilgi fonksiyonu içerisinde echo kullanmamalısınız. Yazı içerisinde yazdırmak istediğiniz sonucu return $sonuc gibi döndürmeniz gerekiyor. Yazdığınız kodları görürsek daha iyi olur.
  • 14-01-2011, 17:17:42
    #15
    function kisi_bilgi($atts, $content = null) { 
        extract(shortcode_atts(array( 
            "id" => '0' 
        ), $atts)); 
    
    $uploads = wp_upload_dir();
    $upload_dir = ( $uploads['baseurl'] );
    $res_yol	= "/resim/";
    $toplam_yol	= $upload_dir . $res_yol;
    
    $veri 		= file_get_contents("http://www.imdb.com/name/".$id."/bio");
    //$imdb 		= "http://www.imdb.com/";
    preg_match("@<a name=\"headshot\" href=\"/rg/action-box-name/headshot/(.*?)\">@is",$veri,$resim);
    preg_match("@<a class=\"main\" href=\"(.*?)\">(.*?)</a>@is",$veri,$isim);
    preg_match("@<h5>Mini Biography</h5(.*?)p>(.*?)</p>@is",$veri,$cikti);
    preg_match("@<h5>Date of Birth</h5(.*?)a href=\"(.*?)\">(.*?)</a(.*?)a href=\"(.*?)\">(.*?)</a(.*?)a href=\"(.*?)\">(.*?)</a(.*?)br/><br/>@is",$veri,$dtarihi_cikti);
    preg_match("@<h5>Date of Death</h5(.*?)a href=\"(.*?)\">(.*?)</a(.*?)a href=\"(.*?)\">(.*?)</a(.*?)a href=\"(.*?)\">(.*?)</a(.*?)br/><br/>@is",$veri,$otarihi_cikti);
    $link2 		= $imdb . $resim[1];
    $resim_veri 	= file_get_contents($link2);
    preg_match("@<img id=\"primary-img\" title=\"(.*?)\" alt=\"(.*?)\" src=\"(.*?)\" (.*?)\">@is", $resim_veri,$resim2);
    $resim_adres 	= $resim2[3];
    
    //$yeni_isim	= $id."_1.jpg";
    //copy($resim_adres, $toplam_yol.'/'.$id.'_1.jpg');
    
    echo 	"<table border=\"1\">";
    	    echo"<tr>";
    		echo"<td rowspan=\"5\">";
    		    echo "<Img src=\" $resim_adres \" alt=\"\" width=\"100\" hight=\"150\" />";
    		    echo "</td><td colspan=\"2\">";
    		    // ismi yaz
    		    echo '<strong>' . $isim[2] . '</strong><br />';
    		echo"</td>";
    	    echo"</tr>";
    	    echo"<tr>";
    		echo"<td colspan=\"2\">";
    		    // Dogum Tarihini Yaz
    		    echo "Dogum Tarihi:" . strip_tags($dtarihi_cikti[3]) . ' '."<a href=\"#\">" . $dtarihi_cikti[6] ."</a>". ' '. strip_tags($dtarihi_cikti[9]) . '<br />';
    		    // Dogum Yerini yaz
    		    //echo "Dogum Yeri:" . strip_tags($dtarihi_cikti[9]) . '<br />';
    		    echo"</td>";
    	    echo"</tr>";
    	    echo"<tr>";
    		echo"<td>O Tarihi</td>";
    		    echo"<td>";
    		    // Olum tarihini yaz
    		    echo strip_tags($otarihi_cikti[3]) . ' ' . strip_tags($otarihi_cikti[6]) . '<br />'; 
    		    echo"</td>";
    	    echo"</tr>";
    	    echo"<tr>";
    		echo"<td rowspan=\"2\">BIO</td>";
    		echo"<td>";
    			// biyografiyi yaz
    			echo strip_tags($cikti[2]) . '<br /><br /><hr />';
    		echo"</td>";
    		echo"</tr>";
    	echo"</table>";
    
    
        return $sonuc; 
    } 
    
    add_shortcode("kisi", "kisi_bilgi");
    Kodlar bunlar. Fonksiyon içinde echo kullanmamam gerektiğini bilmiyordum malesef.
  • 14-01-2011, 17:41:06
    #16
    $sonuc = "<table border=\"1\">"; 
            $sonuc .= "<tr>"; 
            $sonuc .= "<td rowspan=\"5\">"; 
            $sonuc .=  "<Img src=\" $resim_adres \" alt=\"\" width=\"100\" hight=\"150\" />"; 
            $sonuc .=  "</td><td colspan=\"2\">"; 
                // ismi yaz 
            $sonuc .=  '<strong>' . $isim[2] . '</strong><br />'; 
            $sonuc .=  "</td>"; 
            $sonuc .=  "</tr>"; 
            $sonuc .=  "<tr>"; 
            $sonuc .=  "<td colspan=\"2\">"; 
                // Dogum Tarihini Yaz 
            $sonuc .=  "Dogum Tarihi:" . strip_tags($dtarihi_cikti[3]) . ' '."<a href=\"#\">" . $dtarihi_cikti[6] ."</a>". ' '. strip_tags($dtarihi_cikti[9]) . '<br />'; 
                // Dogum Yerini yaz 
                //echo "Dogum Yeri:" . strip_tags($dtarihi_cikti[9]) . '<br />'; 
             $sonuc .=  "</td>"; 
             $sonuc .=  "</tr>"; 
             $sonuc .=  "<tr>"; 
             $sonuc .=  "<td>O Tarihi</td>"; 
             $sonuc .=  "<td>"; 
                // Olum tarihini yaz 
             $sonuc .=  strip_tags($otarihi_cikti[3]) . ' ' . strip_tags($otarihi_cikti[6]) . '<br />';  
             $sonuc .=  "</td>"; 
             $sonuc .=  "</tr>"; 
             $sonuc .=  "<tr>"; 
             $sonuc .=  "<td rowspan=\"2\">BIO</td>"; 
             $sonuc .=  "<td>"; 
                // biyografiyi yaz 
             $sonuc .=  strip_tags($cikti[2]) . '<br /><br /><hr />'; 
             $sonuc .=  "</td>"; 
             $sonuc .=  "</tr>"; 
             $sonuc .= "</table>"; 
    
    
        return $sonuc;
    Kodunuzun yukarıdaki kısmını aşağıdaki ile ddeğiştirin.
    echo "<table border=\"1\">";
    echo"<tr>";
    echo"<td rowspan=\"5\">";
    echo "<Img src=\" $resim_adres \" alt=\"\" width=\"100\" hight=\"150\" />";
    echo "</td><td colspan=\"2\">";
    // ismi yaz
    echo '<strong>' . $isim[2] . '</strong><br />';
    echo"</td>";
    echo"</tr>";
    echo"<tr>";
    echo"<td colspan=\"2\">";
    // Dogum Tarihini Yaz
    echo "Dogum Tarihi:" . strip_tags($dtarihi_cikti[3]) . ' '."<a href=\"#\">" . $dtarihi_cikti[6] ."</a>". ' '. strip_tags($dtarihi_cikti[9]) . '<br />';
    // Dogum Yerini yaz
    //echo "Dogum Yeri:" . strip_tags($dtarihi_cikti[9]) . '<br />';
    echo"</td>";
    echo"</tr>";
    echo"<tr>";
    echo"<td>O Tarihi</td>";
    echo"<td>";
    // Olum tarihini yaz
    echo strip_tags($otarihi_cikti[3]) . ' ' . strip_tags($otarihi_cikti[6]) . '<br />';
    echo"</td>";
    echo"</tr>";
    echo"<tr>";
    echo"<td rowspan=\"2\">BIO</td>";
    echo"<td>";
    // biyografiyi yaz
    echo strip_tags($cikti[2]) . '<br /><br /><hr />';
    echo"</td>";
    echo"</tr>";
    echo"</table>";


    return $sonuc;
  • 14-01-2011, 19:44:14
    #17
    İlginiz ve sabrınız için çok teşekkür ederim yakuphan.

    Bir sorunu daha sayenizde çözdüm...