如何为所有WordPress URL添加参数?解决重定向循环问题
解决WordPress URL自动添加参数的重定向循环问题
你的代码出现重定向循环的原因很直接:它在每次页面加载时都会强制触发重定向,哪怕当前URL已经带有refpin参数,导致浏览器反复跳转陷入死循环。
要解决这个问题,核心逻辑是:只有当URL中还没有refpin参数时,才执行重定向操作。另外add_query_arg函数本身已经能自动处理URL已有参数的情况(自动用&拼接新参数),不需要额外编写判断逻辑。
修正后的代码如下:
function wprdcv_param_redirect() { // 检查当前URL是否未包含refpin参数 if ( ! isset( $_GET['refpin'] ) ) { // 自动处理参数拼接,生成带refpin的新URL $location = esc_url( add_query_arg( 'refpin', '123' ) ); // 执行重定向并终止脚本,避免后续代码干扰 wp_redirect( $location ); exit; } } add_action( 'template_redirect', 'wprdcv_param_redirect' );
关键细节说明:
! isset( $_GET['refpin'] ):通过这个判断跳过已带目标参数的请求,从根源上避免重定向循环。add_query_arg( 'refpin', '123' ):该函数会自动识别当前URL的参数状态,已有参数则用&拼接,无参数则用?开头,完全满足你的需求。exit;:执行wp_redirect后必须添加此语句,终止PHP脚本后续执行,防止出现额外的逻辑冲突。
内容的提问来源于stack exchange,提问作者Jamie Warren
相关产品推荐
相关产品推荐

