Wordpress' te 2 adet Custom Type var. Arama formunda All, Custom1, Custom2 şeklinde Select input var. Bunlardan biri seçilince yalnızca o custom type ları listeletmek istiyorum.

Arama Fonksiyonu şu şekilde:
function include_cpt_search( $query ) {

    if ( $query->is_search ) {
$query->set( 'post_type', array('custom1','custom2') );
}
    return $query;
}
Ben bu fonksiyona arama formundaki Select inputunun verisini POST edip if ile kontrol ettirip listetebilir miyim? Böyle bir şey denedim fakat o fonksiyona POST ettiremedim galiba çalışmadı. Teşekkürler

--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 18:33:28 -->-> Daha önceki mesaj 17:40:06 --

hkarpat adlı üyeden alıntı: mesajı görüntüle
Wordpress' te 2 adet Custom Type var. Arama formunda All, Custom1, Custom2 şeklinde Select input var. Bunlardan biri seçilince yalnızca o custom type ları listeletmek istiyorum.

Arama Fonksiyonu şu şekilde:
function include_cpt_search( $query ) {

    if ( $query->is_search ) {
$query->set( 'post_type', array('custom1','custom2') );
}
    return $query;
}
Ben bu fonksiyona arama formundaki Select inputunun verisini POST edip if ile kontrol ettirip listetebilir miyim? Böyle bir şey denedim fakat o fonksiyona POST ettiremedim galiba çalışmadı. Teşekkürler

function include_cpt_search( $query ) {
$var = $_GET['filter'];
    if ( $query->is_search ) {
      if($var='custom1'){
$query->set( 'post_type', array('custom1') ); echo $var;}
else if($var='custom2'){
$query->set( 'post_type', array('custom2') ); echo $var;}
else if($var='all'){
$query->set( 'post_type', array('custom1','custom2') ); echo $var;}
    return $query;
}
}
Şöyle bir şey yaptım fakat yalnızca ilk if e giriyor diğerlerine girmiyor, Bunu test etmek için select option' u ekrana yazdırdım. custom1 ve custom2 nin yerini değiştirdim. Hangisi ilk ise ona giriyor.


Çözüm:

Switch Case kullanarak yapınca oldu
function include_cpt_search( $query ) {
$var = $_GET['filter'];
    if ( $query->is_search ) {
      switch ($var) {
        case 'custom1':
          $query->set( 'post_type', array('custom1') ); echo $var;
          break;
        case 'custom2':
        $query->set( 'post_type', array('custom2') ); echo $var;
        break;
        case 'all':
          $query->set( 'post_type', array('custom1','custom2') ); echo $var;
          break;
      }
    return $query;
}
}