嗨Stack Overflow社區。WordPress的:用Ajax更改查詢循環?
我正在爲撒旦開發一個wordpress網站。首先,我是一個初級的web開發者,所以我們說我還有很多東西需要學習... :-)這是我第一次使用Ajax,而且我沒有太多的PHP經驗或者wordpress以外的SQL。
這個網站有基於複選框的搜索功能。我有2個3個複選框組(總共6個)。所以,我有2個分類法,每個複選框代表一個不同的術語。我想根據Satan使用這些複選框選擇的類別,使用ajax更改頁面內容。我能夠做到這一點,但一次只能用於複選框的一個組合。因爲有幾十種不同的組合,我不認爲寫幾十個不同的查詢/ ARGS(每個組合)是一個很好的政策。那麼,我該怎麼做?
讓我們看一個例子,讓你明白我的意思:
試想一下,撒旦要檢查中靈魂的地獄槽的形式。有兩組複選框,一個人,一個用於懲罰,這樣的事情:
人民
- 男性
- 女性
- 兒童
處罰
- 在火焰
- 刺穿
- 正在被惡魔
吃過現在,我有這樣的jQuery的Ajax代碼:
$('#searchsouls').click(function(){
$.ajax({
url:"<?php echo get_bloginfo('template_url'); ?>/evil-laugh.php",
type:"POST",
async:"false",
data:$("#de-form").serialize(),
success:function(data) {
$('#666').empty().html(data);
},
error:function(e){
console.log('Error: ' + e);
}
});
return false;
})
這工作得很好。然後,我有這樣的代碼惡laugh.php內:
<?php global $query_string;
$args = wp_parse_args($query_string);
$args = array(
'post_type' => 'souls',
'paged' => $paged,
'orderby' => 'title',
'order' => 'ASC',
'posts_per_page' => -1,
'post_status' => 'publish',
);
?>
<!-- THE LOOP -->
<?php $wp_query = new WP_Query($args); ?>
<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
這當然顯示了所有的靈魂和各種懲罰,沒有任何幻想。我知道我能做到什麼撒旦希望通過定義類別中的各組合一組不同的參數。喜歡的東西(假設「刺穿」一詞具有9的ID,並且「cat9」是複選框的名稱):
if ($_POST['cat9']) {
$args = array(
'post_type' => 'souls',
'paged' => $paged,
'orderby' => 'title',
'order' => 'ASC',
'posts_per_page' => -1,
'post_status' => 'publish',
'punishment' => 'impaled',
);
然而,有幾十個不同的組合。下面是幾個例子:
- 男子刺穿
- 婦女和兒童被惡魔
- 男性或者女性吃在火焰或刺穿
- 兒童在火焰或刺穿或者被惡魔吃掉
我想我可以做某種「for循環」來完成這一點,但我不知道如何做到這一點,或者我可以如何將類別ID添加到wordpress查詢中,從而定義各自的AND和OR。
我真的很感謝這個問題的一些幫助。但是,請記住,我不想只是一個解決方案,我想了解我在做什麼,並儘可能學習一些新的東西。
在此先感謝。