基于引用URL的If Else语句

时间:2015-05-19 作者:JediTricks007

我正在尝试根据参考URL在自定义模板中显示内容。我在页脚中添加了一个链接,名为http://domain.com/?ref=special 和图2。当我单击gif并转到页面时,它仍然显示。我需要图像1。gif显示是否有来自以结尾的域的流量?ref=特殊。我怎样才能做到这一点,我错过了什么?

   <?php
      $ref1 = parse_url(wp_get_referer()); //getting the referring URL
      if($ref1["path"]==\'/?ref=special/\')
  :?>
    <div id="featured_image_small" style="background: url(\'<?php echo esc_url( home_url( \'/wp-content/uploads/2015/05/image1.gif\' ) ); ?>\') no-repeat scroll 0 0 transparent; background-size:cover;">
  <?php else: ?>
    <div id="featured_image_small" style="background: url(\'<?php echo esc_url( home_url( \'/wp-content/uploads/2015/04/image2.jpg\' ) ); ?>\') no-repeat scroll 0 0 transparent; background-size:cover;">
  <?php endif ;?>

2 个回复
最合适的回答,由SO网友:JediTricks007 整理而成

以下内容对我有用。

功能。php

function add_query_vars_filter( $vars ){
  $vars[] = "ref";
  return $vars;
}
自定义模板

  <?php
       if($_GET[\'ref\'] == \'special\')
   :?>
     //do something
   <?php else: ?>
    //do something
  <?php endif ;?>

SO网友:JoshuaDoshua

A.$_GET 变量是更好的选择。

尝试var_dump($_GET); 在条件之前的页面上,查看需要测试的内容

似乎我们还缺少更多的谜题。文件是否显示不正确?这可能是因为文件路径错误吗?还是它总是显示错误的图像?

此外,我想说的是,基于该条件将图像文件名保存为变量,以保持代码更干净。

if ($_GET[\'ref\'] == \'special\') { 
  $file = \'/wp-content/uploads/2015/05/image1.gif\';
} else {
  $file = \'/wp-content/uploads/2015/04/image2.gif\';
}
?>

<div id="featured_image_small" style="background: url(\'<?php echo esc_url( home_url( $file ) ); ?>\') no-repeat scroll 0 0 transparent; background-size:cover;">

结束