在选择两个分类术语后显示帖子

时间:2019-01-28 作者:user160038

我通过一个术语过滤器(第一个分类法)显示post,它工作得很好。

我添加了另一个术语列表过滤器(第二种分类法)。

我想在每个分类法中选择一个术语后显示帖子。

谢谢你的帮助。

/* First taxonomy\'s template. It works like a charm. */
$query = new \\WP_Query(array(
        \'post_type\' => \'postwork\',
        \'tax_query\' => array(
            array(
                \'taxonomy\' => \'workfilter\',
                \'field\' => \'term_id\',
                \'terms\' => get_queried_object_id(),
            )
        )
    ));

/* Second taxonomy\'s template. It doesn\'t work I don\'t know how to recover the first term value */
    $query = new \\WP_Query(array(
        \'post_type\' => \'postwork\',
        \'tax_query\' => array(
            \'relation\' => \'AND\',
            array(
                \'taxonomy\' => \'workfilter\', /* first taxonomy */
                \'field\' => \'term_id\',
                \'terms\' => \'\', /* Want to get the term */
            ),
            array(
                \'taxonomy\' => \'workfiltercondition\', /* second taxonomy */
                \'field\' => \'term_id\',
                \'terms\' => get_queried_object_id(),
            )
        )
    ));

    /* Loop to display posts */

    if ( $query->have_posts() ): ?>
        <div class="container-fluid">
            <div class="works-list">
                <?php while ( $query->have_posts() ) : $query->the_post(); ?>
                    <div class="works-item">
                        <a href="<?php echo get_permalink(); ?>">
                            <img src="<?php  echo get_the_post_thumbnail_url(); ?>" alt="" />
                            <div class="d-flex justify-content-between works-info">
                                <div>
                                    <h2><?php echo get_the_title(); ?></h2>
                                    <p><?php echo the_field(\'work_place\'); ?></p>
                                </div>
                            </div>
                        </a>
                    </div>
                <?php endwhile; ?>
            </div>
        </div>
    <?php endif;

    /* jQuery Script to works with Ajax */

    jQuery(function(){
    var mainContent = jQuery(\'.container-fluid\');
    var catLinks = jQuery(\'ul.categories-filters li a\');

    catLinks.on(\'click\', function(e){

        e.preventDefault();
        el = jQuery(this);
        var value = el.attr("href");
        mainContent.animate({opacity:"0.5"});
        mainContent.load(value + " .works-list", function(){
            mainContent.animate({opacity:"1"});
        });
        jQuery( "li" ).removeClass( "current-cat" );
        jQuery(this).closest(\'li\').addClass("current-cat");
    });
});

1 个回复
SO网友:Mohsin Ghouri

如果要在存档页面上使用过滤器,则必须使用全局变量或通过传递术语id的硬值来获取第二个术语id。但如果要在任何其他页面上使用过滤器,则可以通过表单的post或get方法或使用ajax发送术语id。

相关推荐

如何在AJAX调用中使用`Foreach()`

我编写了一段代码,用于使用ajax for WordPress从数据库中检索数据。以下代码是在functions.php. 代码用于获取类别id下的id和子类别名称,类别id定义为$cat . 结果,我需要显示为下拉列表function fetchData(){ global $wpdb; $catId = $_POST[\'key\']; // value from the ajax // Now we want to JSON encode