如何删除PHP中的函数生成的空间,使我的链接断开?

时间:2012-06-20 13:24:02

标签: php wordpress

我需要根据该页面的URL中的变量在Wordpress中构建一个链接。 虽然在PHP中这可能很容易,但在WP中这似乎很难(我知道WP出于安全原因不允许它)。 因此,我根据this link在我的Wordpress安装(functions.php)中添加了一个过滤器,以便获取该变量并在我的WP帖子页面中以编程方式使用它来构建我的链接。 但是,链接形成两个空格(一个在我调用相关函数之前和一个之后)。

所以,链接背后的代码是:

<?php echo ("<a href='www.mydomain.com/purchases/?refid="); ?> <?php echorefid(); ?> <?php echo ("'>download this amazing file</a>") ?>
当我尝试访问www.mydomain.com/?refid=3267上的网页时,

和输出代码(以HTML格式显示)是:

<a href='www.mydomain.com/purchases/?refid= 3267 '>download this amazing file</a>

请注意3267字符串前的空格和此字符串后的空格。 显然,链接已经破裂。

函数echorefid()出现在我添加到functions.php的以下代码中:

add_filter('query_vars', 'parameter_queryvars' );

function parameter_queryvars( $qvars ) 
{ 
$qvars[] = 'refid'; 
return $qvars; 
} 

function echorefid() 
{ 
global $wp_query; 
if (isset($wp_query->query_vars['refid'])) 
{ 
print $wp_query->query_vars['refid']; 
} 
}    

任何帮助都将受到高度赞赏。

3 个答案:

答案 0 :(得分:2)

那是因为你的代码中有空格!变化:

<?php echo ("<a href="www.mydomain.com/purchases/?refid="); ?> <?php echorefid(); ?> <?php echo (">download this amazing file</a>") ?>
//                                                            ^                     ^
// No needs for spaces here! ---------------------------------+---------------------+

要:

<?php echo ("<a href="www.mydomain.com/purchases/?refid="); ?><?php echorefid(); ?><?php echo (">download this amazing file</a>") ?>

答案 1 :(得分:1)

空间的原因是你将多个<?php ?> <?php ?>与空格隔开的事实。 <?php ?>标记之外的空格将作为输出发送到浏览器。

您只需要其中一个用于所有PHP代码。通过连接三个组并将外部引号切换为单引号或转义内部引号来组合它们。

<?php echo '<a href="www.mydomain.com/purchases/?refid=' . echorefid() . '">download this amazing file</a>'; ?>

答案 2 :(得分:0)

<?php echo ("<a href="www.mydomain.com/purchases/?refid="); php echorefid(); echo (">download this amazing file</a>") ?>

PHP标记之间的空格显示在已完成的HTML中。