【发布时间】:2019-06-04 19:26:58
【问题描述】:
我在每页下拉菜单中有一个 woocommerce 产品。它工作得很好,但是当应用于搜索结果时,它会中断,我使用 relevanssi 进行搜索,这是我的 functions.php 中的下拉/选择代码:-
add_action('woocommerce_before_shop_loop','my_select',25);
function my_select(){
$per_page = filter_input(INPUT_GET,'perpage',FILTER_SANITIZE_NUMBER_INT);
echo "<form class='woocommerce-perpage' method='get'><span>Products per Page:</span>";
echo "<select onchange='this.form.submit()' name='ga_select_ppp'>";
$orderby_options = array(''=>'','40'=>'40','60'=>'60');
foreach($orderby_options as $key=>$value){
echo "<option value='$value'>$value</option>";
}
echo "</select></form>";
}
add_action('pre_get_posts','ga_pre_get_products_query');
function ga_pre_get_products_query($query){
$per_page = filter_input(INPUT_GET,'ga_select_ppp',FILTER_SANITIZE_NUMBER_INT);
global $wp_query;
if($query->is_main_query() && !is_admin() ){
$query->set('posts_per_page',$per_page);
}
}
这非常适用于不涉及 URL 中搜索参数的任何内容。例如,在此页面 URL 中,example.com/?s=test&post_type=product 在单击 60 个页面而不是 example.com/?s=test&post_type=product&ga_select_ppp=60 的下拉菜单时,它会转到此 URL example.com/? ga_select_ppp=60 并且不显示每页 60 个产品。那么,relevanssi的相关hook和filter需要用到哪些,怎么用呢?谢谢
【问题讨论】:
标签: php wordpress woocommerce