我已经搜索了这个问题一段时间了,也许这很简单,也可能不是。我无法弄清楚如何让它发挥作用。
我的目标结果是与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');
?>
答案 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);
在考虑寻求帮助之前,您应该查看您收到的错误消息。如果您之前没有看到错误消息那么谷歌它。学习的最好方法是自己找到解决方案。提出问题是因为当你尝试找到解决方案但却找不到它时。