嗨,我正在尝试创建一个表单,通过3个要求、类别、作者和日期过滤我的帖子。用户应该能够从每个下拉列表中选择一个需求(或全部留空),并基于此获得一个outcoem,例如,可以选择HMTL(来自类别)、Joe Bloggs(来自作者)和2017年2月(来自日期),并获得一个页面,该页面显示2017年2月发布的Joe Bloggs编写的HTMl中的所有帖子。
到目前为止,我有一些功能和一个表单,当选择类别和作者(无日期)时,它似乎起作用,并将我引导到新闻/类别/新闻/?用户=1(&A);日期dd&;提交=筛选,显示我想要的内容。
然而,问题开始的日期。如果我选择了与前一个相同的类别和作者,但选择了2017年1月,我会得到URL新闻/类别/新闻/?用户=1(&A);日期dd=http%3A%2F%2localhost%2Fbrandbiology%2Fnews%2F2017%2F01%2F&;submit=filter现在不起作用,它将显示类别和作者,但没有日期和奇怪的url。
第二,如果我把<?php wp_get_archives( $args ); ?>
在我的页面上,它将显示<li>
(不是我想要的,但我这样做是为了测试)然后点击2017年1月,它将带我到2017年1月的《新闻》(news/2017/01)/《新闻》(Post),它将只在1月显示帖子(不适用于分类IE,新闻/分类/博客/2017/01)/《新闻》(shows 404)。
因此,我的问题是试图创建正确的结果,根据我想要的3个要求显示帖子。
提前感谢
Here is my Functions:
function get_cat_droplist(){
$args = array(
\'show_option_all\' => \'All Categories\',
\'show_option_none\' => \'\',
\'option_none_value\' => \'-1\',
\'orderby\' => \'ID\',
\'order\' => \'ASC\',
\'show_count\' => 1,
\'hide_empty\' => 1,
\'child_of\' => 0,
\'exclude\' => \'\',
\'include\' => \'\',
\'echo\' => 1,
\'selected\' => 0,
\'hierarchical\' => 0,
\'name\' => \'cat\',
\'id\' => \'\',
\'class\' => \'postform\',
\'depth\' => 0,
\'tab_index\' => 0,
\'taxonomy\' => \'category\',
\'hide_if_empty\' => true,
\'value_field\' => \'term_id\',
);
$output = wp_dropdown_categories( $args );
}
function get_author_droplist(){
$args = array(
\'show_option_all\' => \'All Author\', // string
\'show_option_none\' => null, // string
\'hide_if_only_one_author\' => true, // string
\'orderby\' => \'display_name\',
\'order\' => \'ASC\',
\'include\' => null, // string
\'exclude\' => null, // string
\'multi\' => false,
\'show\' => \'display_name\',
\'echo\' => true,
\'selected\' => false,
\'include_selected\' => false,
\'name\' => \'user\', // string
\'id\' => null, // integer
\'class\' => null, // string
\'blog_id\' => $GLOBALS[\'blog_id\'],
\'who\' => null // string
);
$output = wp_dropdown_users( $args );
}
function get_date_droplist(){
$args = array(
\'type\' => \'monthly\',
\'limit\' => \'\',
\'format\' => \'option\',
\'before\' => \'\',
\'after\' => \'\',
\'show_post_count\' => true,
\'echo\' => 0,
\'order\' => \'DESC\',
\'post_type\' => \'post\'
);
$output = wp_get_archives( $args );
}
and my HTML/PHP
<form action="<?php bloginfo(\'url\'); ?>" method="get">
<div>
<span class="cat-list-header text-color-1">Filter posts:</span>
<?php
$select = get_cat_droplist();
echo $select;
?>
<?php
$select = get_author_droplist();
echo $select;
?>
<select name="date-dd">
<option value=""><?php echo esc_attr( __( \'Select Month\' ) ); ?></option>
<?php wp_get_archives( array( \'type\' => \'monthly\', \'format\' => \'option\', \'show_post_count\' => 1 ) ); ?>
</select>
<input type="submit" name="submit" value="filter" /> <!--CHANGE VALUE TO YOUR LIKING!-->
</div>
</form>