在加载页面之前添加其他页面参数

时间:2019-04-20 作者:SwitchIT

我遇到的问题是:我需要强制在特定页面上显示仅用于移动设备的产品的列表视图,对我来说,完美的解决方案是添加一个url参数->\'&;product\\u view=list\',然后将其重定向到页面。

非常感谢。

2 个回复
SO网友:BlueSuiter

设置变量

$product_view=isset($_GET[\'product_view\']) ? $_GET[\'product_view\'] : \'grid\'; 
现在,如何使用分页URL保持这样的状态。

echo paginate_links(array(
    \'base\' => add_query_arg(\'product_view\', $product_view),
    \'format\' => \'\',
    \'prev_text\' => __(\'«\'),
    \'next_text\' => __(\'»\'),
    \'total\' => ceil($total / $items_per_page),
    \'current\' => $page,
    \'add_args\' => array(
        \'category\' => \'fruit\',
        \'color\' => \'red\'
    )
));
我希望这将帮助你解决你的问题。

非常感谢。

SO网友:Antti Koskinen

也许你可以试着用MobileDetect 类(在Github中找到,我没有关联)来检测用户是否正在使用移动设备,然后使用添加url参数add_query_arg 在…上template_redirect 行动沿着这条线的东西。

require_once \'Mobile_Detect.php\'; // use correct path    
function prefix_add_list_view_param_on_mobile() {
  $detect = new Mobile_Detect;
  $is_product_view = true; // add logic
  // Any mobile device (phones or tablets).
  if ( $is_product_view && $detect->isMobile() && empty( $_GET[\'product_view\'] ) ) {    
    wp_safe_redirect( esc_url( add_query_arg( \'product_view\', \'list\' ) ) ); // omitting url param results in the current URL being used (the value of $_SERVER[\'REQUEST_URI\'])
    exit;
  }  
}
add_action( \'template_redirect\', \'prefix_add_list_view_param_on_mobile\' );
代码exapmle未经测试,可能需要进行一些调整。

相关推荐

具有Get_Pages的多个元密钥

我目前有以下代码,其中我按页面模板过滤;$pages = get_pages( array( ‘post_type’ => ‘page’, ‘meta_key’ => ‘_wp_page_template’, ‘meta_value’ => ‘unit.php’, ‘hierarchical’ => 0 ) ); 我还想按ACF字段排序,因此需要添加以下内容:;‘meta_key’ => ‘status’, ‘ord