gpt4 book ai didi

filter - 更改过滤器时清除或重置 WordPress 帖子分页

转载 作者:行者123 更新时间:2023-12-02 00:46:21 25 4
gpt4 key购买 nike

我觉得很简单,但我不明白。这是我的过滤器:

<form class='post-filters'>
<select name="filter">
<?php
$filter_options = array(
'houses' => 'Houses',
'hotels' => 'Hotels',
);
foreach( $filter_options as $value => $label ) {
echo "<option ".selected( $_GET['filter'], $value )." value='$value'>$label</option>";
}
?>
</select>
<input type='submit' value='Filter!'>
</form>

将过滤器应用于wordpress查询的相关PHP:

<?php 
global $destinations;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$destinations = new WP_Query([
'paged' => $paged,
'location' => $location,
'category_name' => urldecode(get_query_var('filter')),
'posts_per_page' => 6
]);
?>

如果我选择“过滤器”并且结果超过六个条目,我会使用 next_posts_link() 查看接下来的六个结果。现在的问题是,如果我在第 2 页或第 3 页,而另一个过滤器的数量少于例如6 个条目,更改过滤器时我看不到任何结果。

如何在更改过滤器时清除获取变量 (/page/2/)?

示例:

category/subcategory/subsubcategory/page/3/?filter=houses 

现在我选择“过滤”酒店

category/subcategory/subsubcategory/page/3/?filter=hotels

并且“/page/3”不会被清除。所以我看不到一些帖子。

最佳答案

这里已经回答了: https://wordpress.stackexchange.com/a/264266

function get_nopaging_url() {
$current_url = $_SERVER[REQUEST_URI];

$pattern = '/page\\/[0-9]+\\//i';
$nopaging_url = preg_replace($pattern, '', $current_url);

return $nopaging_url;
}

您可以使用此函数通过过滤器删除网址中的分页。

参见示例:

<a href="<?php echo get_nopaging_url(); ?>?filter=houses">

关于filter - 更改过滤器时清除或重置 WordPress 帖子分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31463969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com