使用$ output创建超链接短代码?

时间:2013-02-06 10:47:54

标签: php html wordpress shortcode

我已经搜索了这个问题一段时间了,也许这很简单,也可能不是。我无法弄清楚如何让它发挥作用。

我的目标结果是与post meta相关的超链接,其中包含一些样式。

<a href="href_link" style="color: #e67300" rel="nofollow"> Check out the r_title here!</a>

我的代码是:

<?php
$rtitle1 = get_post_meta($post->ID, 'r_title', true);
$rlink1 = get_post_meta($post->ID, 'href_link', true);
    function testfunction() {

    $output .= '<a href=\"'$rlink1'\" style=\"color: #e67300\" rel=\"nofollow\">';
    $output .= ' Check out the '$rtitle1' here!</a>';

    return $output;
    }
add_shortcode('shortcode', 'testfunction');
?>

1 个答案:

答案 0 :(得分:1)

您的代码存在一些问题。

第一个问题是string concatenation。如果要将字符串粘合在一起,则需要使用concatenation operator(点:.):

$end = 'a string';
$start = 'This is ';
$string = $start.$end;

如果您只是并置变量和字符串(或任何其他scalar types),那么您将收到错误:

$end = 'a string';
$string = "This is "$end; // Error!

第二个问题是您使用global scope中的两个变量($rtitle1$rlink1)。如果要在函数内部使用全局变量,则需要在函数内声明它们为全局变量:

$globalVar = 'test';
function test() {
  global $globalVar;
  echo $globalVar;
}

第三个问题是您忘记了)函数的结束右括号get_post_meta()

$rtitle1 = get_post_meta($post->ID, 'r_title', true;
$rlink1 = get_post_meta($post->ID, 'href_link', true;

他们应该是这样的:

$rtitle1 = get_post_meta($post->ID, 'r_title', true);
$rlink1 = get_post_meta($post->ID, 'href_link', true);

在考虑寻求帮助之前,您应该查看您收到的错误消息。如果您之前没有看到错误消息那么谷歌它。学习的最好方法是自己找到解决方案。提出问题是因为当你尝试找到解决方案但却找不到它时。