JavaScript:数组反向和联接无法正常运行join()方法中的空令牌

我有一个基本的存档提要。


我正在尝试按表格添加一个简单的下拉列表,使我可以按日期,标题和受欢迎程度对结果进行排序...


我有点,但它并没有按我预期的那样工作。


我有一个下拉菜单,“ onchange”获取选项的值,并将其添加到URL。通过将值设置为?orderby = date&order = DESC,它可以工作...


但是,它会重新加载页面(很好),并且不保存所选选项的值...,因此下拉字段不显示所选值...


如果我选择其他值,它也不会删除该值。因此,如果选中,它将在orderby = date&order = DESC的末尾附加?orderby = date&order = ASC。并将继续这样做,这会导致问题。


第三,“视图”似乎不起作用,不确定要根据多少人查看过的页面来过滤该值是什么(甚至有可能吗?!)


if ( have_posts() ) : 

    echo '<div class="posts-query">';?>

        <div id="sortby"> SORT BY: &nbsp;

        <select class="dropdown-class" name="sort-posts" id="sortbox" onchange="document.location.href=location.href+this.options[this.selectedIndex].value;">

        <option disabled>Sort by</option>

        <option value="?orderby=date&order=DESC">Newest</option>

        <option value="?orderby=date&order=ASC">Oldest</option>

        <option value="?orderby=title&order=ASC">A-Z Asc</option>

        <option value="?orderby=title&order=DESC">A-Z Desc</option>

        <option value="?orderby=views&order=ASC">Views Asc</option>

            <option value="?orderby=views&order=DESC">Views Asc</option>

    </select>

</div>



<?php while ( have_posts() ) : the_post(); ?>   

            <div class="query-post">

                <div class="posts-image">

                    <?php the_post_thumbnail("thumbnail");?>

                </div>

                <div class="post-categories">

                    <?php $postType = get_post_type_object(get_post_type());

                    if ($postType) {

                    echo esc_html($postType->labels->singular_name);

                    } ?>

                </div>


                <div class="posts-title">

                    <a href="<?php the_permalink(); ?>">

                        <h3> 

                            <?php the_title() ?>

                        </h3>

                    </a>

                </div>

            </div>

<?php endwhile; endif; ?>


有没有一种方法可以简单地按日期,标题和视图对WP_Query进行排序,并且不仅可以将选项下拉列表中的选定结果保存为“ selected”,而且还可以从下拉列表中选择一个新的查询来删除上一个查询?


胡子哥哥
浏览 139回答 1
1回答

慕雪6442864

对于那些可能感兴趣的人,我使用以下代码解决了这个问题:<div id="sortby"> SORT BY: &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <select class="dropdown-class" name="sort-posts" id="sortbox" onchange="document.location.search=this.options[this.selectedIndex].value;">&nbsp; &nbsp; &nbsp; &nbsp; <option disabled>Sort by</option>&nbsp; &nbsp; &nbsp; &nbsp; <option <?php if( isset($_GET["orderby"]) && trim($_GET["orderby"]) == 'date' && isset($_GET["order"]) && trim($_GET["order"]) == 'DESC' ){ echo 'selected'; } ?> value="?orderby=date&order=DESC">Newest</option>&nbsp; &nbsp; &nbsp; &nbsp; <option <?php if( isset($_GET["orderby"]) && trim($_GET["orderby"]) == 'date' && isset($_GET["order"]) && trim($_GET["order"]) == 'ASC' ){ echo 'selected'; } ?>&nbsp; value="?orderby=date&order=ASC">Oldest</option>&nbsp; &nbsp; &nbsp; &nbsp; <option <?php if( isset($_GET["orderby"]) && trim($_GET["orderby"]) == 'title' && isset($_GET["order"]) && trim($_GET["order"]) == 'ASC' ){ echo 'selected'; } ?> value="?orderby=date&order=DESC" value="?orderby=title&order=ASC">A-Z Asc</option>&nbsp; &nbsp; &nbsp; &nbsp; <option <?php if( isset($_GET["orderby"]) && trim($_GET["orderby"]) == 'title' && isset($_GET["order"]) && trim($_GET["order"]) == 'DESC' ){ echo 'selected'; } ?>&nbsp; value="?orderby=title&order=DESC">A-Z Desc</option>&nbsp; &nbsp; &nbsp; &nbsp; <option <?php if( isset($_GET["orderby"]) && trim($_GET["orderby"]) == 'views' && isset($_GET["order"]) && trim($_GET["order"]) == 'ASC' ){ echo 'selected'; } ?> value="?orderby=views&order=ASC">Views Asc</option>&nbsp; &nbsp; &nbsp; &nbsp; <option <?php if( isset($_GET["orderby"]) && trim($_GET["orderby"]) == 'views' && isset($_GET["order"]) && trim($_GET["order"]) == 'DESC' ){ echo 'selected'; } ?> value="?orderby=views&order=DESC">Views Desc</option>&nbsp; &nbsp; &nbsp; &nbsp; </select>&nbsp; &nbsp; &nbsp; &nbsp; </div>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript