【问题标题】:Wordpress PHP | get_permalink() stripping slashes. Cant add extra slashWordPress PHP | get_permalink() 剥离斜线。不能添加额外的斜线
【发布时间】:2020-12-22 23:23:41
【问题描述】:

我有社交媒体按钮来分享 URL。我的代码看起来像

$socialURL = get_permalink();

//trying to add extra slash here
$socialURL = str_replace('https://', 'https:///', $socialURL);

$facebookURL = 'https://facebook.com/sharer/sharer.php?u=' . $socialURL;

我的预期网址:https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fpillartopost.online

其中 %2F 是两个斜杠

结果网址:https://www.facebook.com/sharer/sharer.php?u=https%3A%2Fpillartopost.online%2Fnews%2Fwater-heating-systems%2F

只有一个 %2F 斜杠。

由于某种原因,我的 str_replace 方法没有做任何事情。我查看了其他解决方案的 wordpress 文档,但没有任何效果,这绝对是最简单的解决方案。为什么不添加额外的斜线?

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    可能,使用trailingslashit

    php查询生成器功能可以解决问题:

    $social_url        = trailingslashit( get_permalink() );
    $facebook_base_url = 'https://facebook.com/sharer/sharer.php';
    $facebook_query    = http_build_query(
        [
            'u' => $social_url
        ]
    );
    $facebook_url      = "$facebook_base_url?$facebook_query";
    

    根据 trailingslashit 文档:

    附加一个斜杠。将删除尾随正斜杠和反斜杠 如果它在添加尾部正斜杠之前已经存在。这个 防止双斜线字符串或路径...

    【讨论】:

    • 看起来尾部斜杠是不必要的。单独的查询构建器功能足以添加两个斜杠。由于某种原因,没有使用查询生成器生成 URL 编码的查询字符串,斜线被剥离。 http_builld_query 是我要找的 :)
    猜你喜欢
    • 2015-11-08
    • 2020-03-29
    • 2015-07-08
    • 2019-12-30
    • 1970-01-01
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    相关资源
    最近更新 更多