【问题标题】:What am I missing to get a global variable to work in a function?为了让全局变量在函数中工作,我缺少什么?
【发布时间】:2020-09-16 14:13:16
【问题描述】:

我是 php 新手,不确定为什么这个全局调用不起作用。我正在尝试获取 URL(Wordpress 站点)并将 facebook 共享 URL 导出为简码。 我当前的输出只是“https://www.facebook.com/sharer/sharer.php?u="

$dhURL = urlencode(get_the_permalink());

function facebookshare_function() {
    global $dhURL;
    $FBURL = 'https://www.facebook.com/sharer/sharer.php?u='.$dhURL;
    return $FBURL;
}
add_shortcode('facebookshare', 'facebookshare_function');

【问题讨论】:

    标签: php global


    【解决方案1】:

    您的全局调用是正确的。 为什么在 get_the_permalink() 上使用 urlencode()?

    只需使用get_the_permalink()esc_url(get_permalink())

    第二个不会编码/

    【讨论】:

    • urlencode 是关于兼容性的建议。没有看起来好多了!因此,如果我正确编写了全局调用,知道为什么它不起作用吗?
    • 如果你检查一个随机字符串作为 $dhURL,它工作正常。所以 get_the_permalink() 结果为 null
    • 如果我在函数中使用 get_the_permalink() 它可以正常工作并按预期返回。我想把它放在函数之外(因此是全局的),因为它会在其他函数中使用
    • 尝试添加全局 $dhURL;在你宣布之前。所以在 get_the_permalink 之前。子函数变量很奇怪。检查手册“变量范围”页面上的 cmets
    • 你的意思是添加全局$dhURL;在函数之外的声明之前?我已经尝试过了,但没有成功。好像 $dhURL = get_permalink();由于某种原因不想在函数之外工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    相关资源
    最近更新 更多