【发布时间】:2019-02-11 11:36:30
【问题描述】:
我正在设置一个过滤栏来根据用户的选择过滤 WordPress 帖子。
当前代码为每个帖子类别提供了反映我所针对的标准的内容。假设 2019 年 2 月发布了一篇帖子。该帖子将包含“FEB”、“2019”,并且其标题带有“_”而不是空格作为附加类别。
当页面加载时,URL 中有参数,所有文章都会消失,然后只会显示那些与 $_GET 参数匹配的类。
我在代码中使用 JS 以及 echo 语句。
由于某种原因它不起作用,如果有人可以指出问题或给我一个更好的替代这个长代码的方法,那就太棒了。
提前致谢!
function filterbar(){
$current_ID =$_GET['page_id'];
echo "
<div class='filterbar containerfluid'>
<div class='row'>
<div class='col-12'>";
if (get_locale() == 'en_US') {
echo "<form action='#' method='get'>
<div class='dropdown'>
<select name='month'>
<option value='all'>By Month</option>
<option value='Jan'>January</option>
<option value='Feb'>February</option>
<option value='Mar'>March</option>
<option value='Apr'>April</option>
<option value='May'>May</option>
<option value='Jun'>June</option>
<option value='Jul'>July</option>
<option value='Aug'>August</option>
<option value='Sep'>September</option>
<option value='Oct'>October</option>
<option value='Nov'>November</option>
<option value='Dec'>December</option>
</select>
</div>
<div class='dropdown'>
<select name='year'>
<option value='all'>By Year</option>
<option value='2018'>2018</option>
<option value='2019'>2019</option>
</select>
</div>
<div class='dropdown'>
<select name='category'>
<option value='all'>All</option>
<option value='Excise Tax'>Excise Tax</option>
<option value='Corporate Income Tax'>Corporate Income Tax</option>
<option value='Withholding Tax'>Withholding Tax</option>
<option value='Tax Treaties'>Tax Treaties</option>
</select>
</div>
<input type='text' name='page_id' value=' $current_ID ' style='display: none;'>
<input type='text' name='string' value='all' placeholder='Enter keywords'>
<input type='submit' value='Filter' class='button'></input>
</form>";
} else {
echo "<form action='#' method='get'>
<div class='dropdown'>
<select name='month'>
<option value='all'>شهريا</option>
<option value='Jan'>January</option>
<option value='Feb'>February</option>
<option value='Mar'>March</option>
<option value='Apr'>April</option>
<option value='May'>May</option>
<option value='Jun'>June</option>
<option value='Jul'>July</option>
<option value='Aug'>August</option>
<option value='Sep'>September</option>
<option value='Oct'>October</option>
<option value='Nov'>November</option>
<option value='Dec'>December</option>
</select>
</div>
<div class='dropdown'>
<select name='year'>
<option value='all'>سنويا</option>
<option value='2018'>2018</option>
<option value='2019'>2019</option>
</select>
</div>
<div class='dropdown'>
<select name='category'>
<option value='all'>بالتصنيف</option>
<option value='Excise Tax'>Excise Tax</option>
<option value='Corporate Income Tax'>Corporate Income Tax</option>
<option value='Withholding Tax'>Withholding Tax</option>
<option value='Tax Treaties'>Tax Treaties</option>
</select>
</div>
<input type='text' name='page_id' value=' $current_ID ' style='display: none;'>
<input type='text' name='string' value='الكل ' placeholder='Enter keywords'>
<input type='submit' value='منقي' class='button'></input>
</form>";
}
echo "
</div>
</div>
</div>
";
if(isset($_GET['year']) || isset($_GET['month']) || isset($_GET['string']) || isset($_GET['category']) ){
if($_GET['year'] != 'all' || $_GET['month'] != 'all' || $_GET['string'] != 'all' || $_GET['category'] != 'all' ){
echo "
<script>
jQuery(document).ready(function($){
$( 'article.pressrelease' ).hide();
});
</script>
";
}
if($_GET['year'] != 'all'){
$filteryear = $_GET['year'];
echo "
<script>
jQuery(document).ready(function($){
if($( 'article.pressrelease' ).hasClass(" . $filteryear . ")){
$( 'article.pressrelease' ).show();
}
});
</script>
";
}
if($_GET['month'] != 'all'){
$filtermonth = $_GET['month'];
echo "
<script>
jQuery(document).ready(function($){
if($( 'article.pressrelease' ).hasClass(" . $filtermonth . ")){
$( 'article.pressrelease' ).show();
}
});
</script>
";
}
} } add_shortcode( 'filterbarList', 'filterbar' );
【问题讨论】:
-
当您说它不起作用时,究竟是什么不起作用?我将假设问题是显示所有文章,而不仅仅是具有类 filtermonth 的文章?
标签: javascript php wordpress