gpt4 book ai didi

php - 无法将 php 代码作为短代码的返回

转载 作者:搜寻专家 更新时间:2023-10-31 21:25:54 24 4
gpt4 key购买 nike

我需要在 wordpress 帖子中隐藏下载的 URL。我找到了一个很棒的脚本来执行此操作,但它不是插件。我已经安装了脚本并创建了一个函数来包含它。我根本不是 PHP 专家。

但是脚本有一行可以正常调用它:

<a href="<?php downloadurl('http://yourdomainname.comdownloadables.zip','veryspecials'); ?>" >Your Downloadables</a>

我无法将它直接放在帖子中,所以我试图为它制作一个简码,但我被卡住了。我的简码是:

function secshort_func($atts, $content = null) {
extract(shortcode_atts(array(
"linkurl" => '#Download_Does_Not_Exist',
"linktitle" => 'Download',
), $atts));
return '<a href="<?php downloadurl(' .$linkurl. ','veryspecials'); ?>" >' .$linktitle. '</a>';
}
add_shortcode( 'secdown', 'secshort_func' );

我在尝试运行它时遇到错误,通过排除过程我知道它来自返回代码的这一部分:

"<?php downloadurl(' .$linkurl. ','veryspecials'); ?>"

在互联网上搜索解决方案并尝试了所有我能想到的方法之后,我完全被卡住了。

非常感谢任何帮助 - 被困在这么小的事情上让我发疯!

最佳答案

一些观察和答案:

  1. 格式化你的代码。它使故障排除时的生活变得更加轻松。良好的缩进是巨大的(请参阅下面的代码,格式化)。
  2. 不要使用含糊不清的/缩写的函数名称。将它们键入,以便创建 self documenting code .
  3. 最好使用extract。有人说可以,但可以create confusing code这很难排除故障,因为您不知道变量来自何处。最好显式设置变量。 (在您的情况下,因为您只使用它们一次,所以最简单的方法是仅以数组形式引用它们 - $atts['link_url'])
  4. 您可以调用函数,但必须将其连接到字符串中(见下文)。您的代码(和其他答案)正在将 php 传递到字符串中,而不是调用函数并将结果传递到字符串中。

格式化代码,答案:

// Use a clearer function name.  No need for  "func", that's implied
function download_link_shortcode($atts, $content = NULL) {
// Declare $defaults in a separate variable to be clear, easy to read
$defaults = array(
"link_url" => '#Download_Does_Not_Exist',
"link_title" => 'Download',
);

// Merge the shortcode attributes
$atts = shortcode_atts( $defaults, $atts );

// Concatenate in the results of the `download` function call....
return '<a href="' . downloadurl( $atts['link_url'], 'veryspecials' ) . '">' . $atts['link_title'] . '</a>';
}

add_shortcode( 'secdown', 'download_link_shortcode' );

关于php - 无法将 php 代码作为短代码的返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36229162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com