为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

胡子哥哥 2021-04-07 13:14:03
我有一个基本的存档提要。我正在尝试按表格添加一个简单的下拉列表,使我可以按日期,标题和受欢迎程度对结果进行排序...我有点,但它并没有按我预期的那样工作。我有一个下拉菜单,“ 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”,而且还可以从下拉列表中选择一个新的查询来删除上一个查询?
查看完整描述

1 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

对于那些可能感兴趣的人,我使用以下代码解决了这个问题:


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

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

        <option disabled>Sort by</option>

        <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>

        <option <?php if( isset($_GET["orderby"]) && trim($_GET["orderby"]) == 'date' && isset($_GET["order"]) && trim($_GET["order"]) == 'ASC' ){ echo 'selected'; } ?>  value="?orderby=date&order=ASC">Oldest</option>

        <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>

        <option <?php if( isset($_GET["orderby"]) && trim($_GET["orderby"]) == 'title' && isset($_GET["order"]) && trim($_GET["order"]) == 'DESC' ){ echo 'selected'; } ?>  value="?orderby=title&order=DESC">A-Z Desc</option>

        <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>

        <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>


        </select>

        </div>


查看完整回答
反对 回复 2021-04-22
  • 1 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信