如何获取URL的一部分并放入短码?

时间:2016-10-16 作者:Stefan

我有这个短代码

[broo_user_badges username=""]
我必须将用户名放在“”之间,但用户名位于URL:/author/peter中。所以,当页面域。com/author/peter已加载,在该页面上应生成此短代码:

[broo_user_badges username="peter"]
我找到了这个

add_shortcode(\'name\', \'get_name\');
function get_name() {
   return $_GET[\'name\'];
}
在这里How to get URL param to shortcode?但我不明白如何在我的案例中使用它(/作者/peter url结构)。

编辑:插件https://wordpress.org/plugins/badgearoo/

2 个回复
SO网友:sarcastasaur

这应该可以:

function get_name() {
    $url = "http://domain.com/author/peter";

    if (preg_match("/author/", $url )) {
        $lastSlash = strrpos( $url, "/");
        return substr( $url, $lastSlash, strlen($url));
    }
}
这将返回最后一次斜杠之后的所有内容。

SO网友:Anish

从url获取作者姓名的两种方法

使用get_query_var()

// http://example.com/author/peter
$author_name = get_query_var(\'author_name\'); // peter
使用get_queried_object()
// http://example.com/author/peter
$author_info = get_queried_object();
$author_name = $author_info->user_login; // peter

// print_r($author_info); // to see more information about Author
有关更多信息,请阅读Custom Author Information

相关推荐

我可以将参数传递给Add_ShortCode()函数吗?

正如标题所述,我需要向add_shortcode() 作用换句话说,我传递的那些参数将在的回调函数中使用add_shortcode(). 我该怎么做?请注意,这些与以下结构无关[shortcode 1 2 3] 哪里1, 2, 和3 是用户传递的参数。在我的情况下,参数仅用于编程目的,不应由用户负责。谢谢