0

我已经搜索了一段时间这个问题,也许它很简单,也可能不简单。我不知道如何让它工作。

我的目标结果将是一个与帖子元相关的超链接,具有类似的样式。

<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');
?>
4

1 回答 1

1

您的代码有几个问题。

第一个问题是字符串连接。当您想将字符串粘合在一起时,您需要使用连接运算符(点:).

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

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

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

第二个问题是您正在使用全局范围内$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);

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

于 2013-02-06T11:01:24.687 回答