0

我需要根据该页面的 URL 中的变量在 Wordpress 中构建一个链接。尽管在 PHP 中这可能很容易,但在 WP 中这似乎很困难(我知道 WP 出于安全原因不允许这样做)。因此,我根据此链接在我的 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']; 
} 
}    

任何帮助将不胜感激。

4

3 回答 3

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>") ?>
于 2012-06-20T13:26:55.790 回答
1

空格的原因是您<?php ?> <?php ?>用空格分隔多个空格。<?php ?>标签外的那些空格作为输出发送到浏览器。

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

<?php echo '<a href="www.mydomain.com/purchases/?refid=' . echorefid() . '">download this amazing file</a>'; ?>
于 2012-06-20T13:26:49.940 回答
0
<?php echo ("<a href="www.mydomain.com/purchases/?refid="); php echorefid(); echo (">download this amazing file</a>") ?>

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

于 2012-06-20T13:26:41.673 回答