0

通常の WordPress カスタム フィールド名に基づく以下の GET 関数があります。チェックを入れると、そのカスタム フィールドの値が 1 に設定されているすべての投稿が並べ替えられます。現在は機能しています。しかし、'free' と 'twofree' という名前の 2 つのカスタム フィールドがあります。

「無料」にチェックマークを付けると、「twofree」も含まれ、その逆も同様です。大文字と小文字は区別されないようです。これに対する回避策はありますか?

<?php 
/* my code starts from  here*/
 if( isset( $_GET['show'] ) && !empty ( $_GET['show']  )  ){
   if( $_GET['show'] == 1 ) 
    $meta_field = 'free';
  else  if( $_GET['show'] == 4 )
    $meta_field = 'sale';
   else if( $_GET['show'] == 2 )
    $meta_field = 'genuine';
    else if ( $_GET['show'] == 'onfire' )
    $meta_field = 'onfire';
    else if( $_GET['show'] == 5 )
    $meta_field = 'twofree';    
 else if( $_GET['show'] == 3 )
    $meta_field = 'onfire'; 

        if( $_GET['show'] == 'sale' )
            query_posts('cat='.$cat.'&meta_key='.$meta_field.'&meta_value > 0');
        else
          query_posts('cat='.$cat.'&meta_key='.$meta_field.'&meta_value>=1');   
 }
/* my code ends from  here*/ 
?>

編集:私は問題を見つけました、そしてそれはその部分にありました

query_posts('cat='.$cat.'&meta_key='.$meta_field.'&meta_value>=1');

に変更しました

query_posts('cat='.$cat.'&meta_key='.$meta_field.'&meta_value=1');
4

1 に答える 1