【问题标题】:Creating a hyperlink shortcode using $output?使用 $output 创建超链接短代码?
【发布时间】:2013-01-21 12:53:21
【问题描述】:

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

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

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

【问题讨论】:

  • 你不需要在单引号内转义双引号

标签: php html wordpress shortcode


【解决方案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);

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

【讨论】:

  • 抱歉,我会开始这样做,但我不确定如何操作。我如何在我的 wordpress 网站上测试我的代码中的错误?
  • 如果您的代码中有错误,它们会出现在您的网站上。它们通常看起来像:“Parse error: syntax error, unexpected T_IF in ...”。如果您没有看到任何错误,请查看此问题的答案:stackoverflow.com/questions/5438060/…
猜你喜欢
  • 2021-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多