• 08-04-2013, 01:31:10
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    explode ile parçaladığım verileri wordpress'te taxonomylere kayıt ettireceğim $etiket[0] $etiket[1] $etiket[2] $etiket[3] değişkenlerinin içerisi boş ise kayıt etmemesini nasıl sağlayabilirim ?
    $my_post = array(
         'post_title' => $baslik,
         'post_name' => $link,
         'post_content' => $metin,
         'post_status' => 'publish',
         'post_author' => 1,
         'tax_input' => array( 'sair' => array( 'necip-fazil' ) ) ,
         'tax_input'      =>  array( 'siir_etiketi' => array( $etiket[0], $etiket[1], $etiket[2], $etiket[3], $etiket[4] ) ), 
         'post_type' => 'siir'
    
      );
      wp_insert_post($my_post);
    ek: ayrıca $etiket[0]dan 6ya kadar döndürüp boş veri hariç $etiket[6] ya kadar nasıl eklettirebilirim ?
  • 08-04-2013, 02:42:52
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Birkaç farklı durum.

    Değişken sayısı sabitse tek tek kontrol ettirirsin.

    <?php
    if($etiket[0]=="" || $etiket[1]=="" .......){
         // hata ver
    }
    else{
         // işlem yap
    }
    ?>
    Değişken sayısı sabit değilse, bir döngü oluşturursun. Bir hata değişkeni belirlersin değeri başlangıçta sıfır olur. Döngü çalışır, boş veri gelirse bu hata değişkenini 1 yapar ve döngüyü durdurur. hata değişkeni 1den farklı olursa işlem yaptırmazsın, 1se yaptırırsın.
    <?php
    
    $hata=1;
    foreach ($etiket as $etiketdizi){
         if($etiketdizi==""){
              $hata=0;
              break;
         }
    }
    
    if($hata!=1){
         // hata ver
    }
    else{
         // işlem yap
    }
    
    ?>


    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 02:42:52 -->-> Daha önceki mesaj 01:43:23 --

    Hocam şu satır var ya

    $etiket=strip_tags($etiket[1]);
    Bunun altına şunu yapabiliriz.

    if(count($etiket)==0){
    $etiket = array("etiketi","olmayan","yazıya","herhangi","bir ","etiket");
    }
    Bunu o kodun altına yazarsanız, eğer verinizde herhangi bir etiket yoksa sizin belirleyeceğiniz etiketleri koyar. şunu sorayım. etiket yoksa ne yapmak istiyorsunuz? programı durdurmayı mı yoksa bahsettiğim gibi birşey yapmak size uyar mı?
  • 08-04-2013, 07:27:15
    #3
    Veri kaydından önce, dizideki boş elemanları silsek daha sağlıklı olur sanırım

    $etiket = array('aslan','kaplan','hebele', 'hubele', 'galatasaray', '', '  ');
    $dizi = array();
    foreach($etiket as $key=>$value){
    	$value = trim($value);
    	if(!empty($value)){
    	$dizi[] = $value;
    	}
    }
    print_r($etiket);
    echo '<br />';
    print_r($dizi);
    Yukarıdaki kodun çıktısı :

    Alıntı
    Array
    (
    [0] => aslan
    [1] => kaplan
    [2] => hebele
    [3] => hubele
    [4] => galatasaray
    [5] =>
    [6] =>
    )
    Array
    (
    [0] => aslan
    [1] => kaplan
    [2] => hebele
    [3] => hubele
    [4] => galatasaray
    )
    Bu kodlardan dizimizdeki boş elemanların çıktığını görüyoruz. Ardından:

    $my_post = array( 
         'post_title' => $baslik, 
         'post_name' => $link, 
         'post_content' => $metin, 
         'post_status' => 'publish', 
         'post_author' => 1, 
         'tax_input' => array( 'sair' => array( 'necip-fazil' ) ) , 
         'tax_input'      =>  array( 'siir_etiketi' => $dizi),
         'post_type' => 'siir' 
    
      );
    wp_insert_post($my_post);
    dediğimizde, boş elemanlar yazılmamış olur.
  • 09-04-2013, 01:02:22
    #4
    dediğiniz şekilde sorun çözülüyor.Ancak veritabanına kayıt yaptırdığımda tekrar boş veri geliyor :S
  • 09-04-2013, 10:10:23
    #5
    if(   ($baslik=="") or ($link=="") or ($metin=="")  ) // burada zorunlu yaptık. 
    
    {
     
    echo "boş veri var,olmaz";
     
    }
    else
    {
    
        $my_post = array( 
         'post_title' => $baslik, 
         'post_name' => $link, 
         'post_content' => $metin, 
         'post_status' => 'publish', 
         'post_author' => 1, 
         'tax_input' => array( 'sair' => array( 'necip-fazil' ) ) , 
         'tax_input'      =>  array( 'siir_etiketi' => array( $etiket[0], $etiket[1], $etiket[2], $etiket[3], $etiket[4] ) ),  
         'post_type' => 'siir' 
    
      ); 
      wp_insert_post($my_post);  
    
    } ;
    
    
    ....
    ...
    şeklinde yapabilirsiniz.
  • 20-04-2013, 17:13:46
    #6
    Sadece dolu olan değişkenleri eklemesini istiyorum ama hala işin içinden çıkamadım :S
    Güncelleme: Boş gelen verileri sildiriyorum.Başka çarem kalmadı.
    mysql_query("DELETE FROM `wp_terms` WHERE name = ''");