WP_QUERY基于页面上的另一个查询

时间:2019-05-09 作者:Hannah Johnson

我有一个查询,它检查该页面上设置的自定义字段,然后创建一个旋转木马,将它们与背景图像循环。

然后我想做的是查询一个使用与自定义字段具有相同值的自定义分类法的帖子类型。基本上,例如,如果我将自定义字段“homepage fruit”设置为“Apple”,但我还有一个名为“fruit”的自定义分类法,它的值之一是“Apple”。

基本上,每次用户单击旋转木马上的“下一步”时,我都想再次运行此查询,因此将顶部旋转木马更改为显示“香蕉”会对标记为“香蕉”作为其水果的帖子运行新的查询。我希望这有意义?

我想我可能需要一些AJAX和javascript的组合,但我对使用AJAX非常陌生,所以还没有完全掌握诀窍。我的直觉是,每次单击滑块箭头时,都会使用javascript将“主页结果”存储为一个变量,但据我所知,在使用PHP进行查询时,不能使用javascript变量,因为所有内容都是按顺序运行的,所以这不起作用。

以下是迄今为止我获得的代码片段:

 <ul class="slider owl-carousel" id="homepagelistcarousel">

    <?php if( have_rows(\'homepage_fruit\') ):
$query1 = new WP_Query( $args );
    while ( have_rows(\'homepage_fruit\') ) : the_row();
$fruit = get_sub_field(\'fruit\');
    $opener = get_sub_field(\'opener\');
  ?>
    <li class="homepagefruitlistitem" data-fruittype="<?php echo $fruit; ?>" style="color:white;padding:20px;background-image:url(\'<?php the_sub_field(\'bg_img\'); ?>\')">
        <div class="openertextblock">

        <span class="post-title" style="font-size:3rem;line-height:80px;"><?php echo $fruit;?></span>
    <span class="txt-style-2" style="text-transform:none;font-size:1.5rem"><?php echo $opener; ?></span></div></li>
    <?php   endwhile;

else :

    // no rows found
wp_reset_postdata();
endif;?>
</ul>

/*owl-carousel adds nav-arrows here*/

<div id="content">
<ul class="postslider owl-carousel" id="post-carousel">
     <?php
    $query2 = new WP_Query( $args2 );
       $args2 = array(
           \'post_type\' => \'healthy-eating-guide\',
           \'category_name\' => $cat_slug,
           \'posts_per_page\' => 10,
           \'paged\' => ( get_query_var(\'paged\') ? get_query_var(\'paged\') : 1 ),
           \'tax_query\' => array(
    array(
    \'taxonomy\' => \'fruit\',
    \'field\' => \'name\',
        \'terms\' => \'apples\',
     )
       )
           );


        if($query2->have_posts()) :
        while($query2->have_posts()) :
        $query2->the_post();
    ?>
    <li>
        <img class="post-slider-img" data-id="<?php the_ID();?>" src="<?php the_post_thumbnail_url();?>"><a href="<?php the_permalink();?>"><span class="post-title"><?php the_title();?></span></a></li>
    <?php endwhile; endif;?>
</ul>
</div>
编辑:我应该在这里注意到,我并不是要求人们为我做我的工作!我只是在兜圈子,试图找到解决这个问题的正确方法,所以欢迎大家就最佳方法提出建议!

1 个回复
SO网友:Hannah Johnson

通过在函数中创建Ajax函数来解决。php和Ajax。js文件插入旋转木马,然后销毁并重新初始化owl旋转木马