web-dev-qa-db-ja.com

URLの一部を取得してショートコードを入れる方法

私はこのショートコードを持っています

[broo_user_badges username=""]

ユーザー名は ""の間に入れなければなりませんが、ユーザー名はURL:/ author/peterにあります。そのため、domain.com/author/peterページがロードされたときに、そのページにこのショートコードが生成されるはずです。

[broo_user_badges username="peter"]

私はこれを見つけました

add_shortcode('name', 'get_name');
function get_name() {
   return $_GET['name'];
}

ここで URLパラメータをショートコードにするにはどうすればよいですか? しかし、私の場合(/ author/peterのURL構造)でそれを使用する方法がわかりません。

編集:プラグイン https://wordpress.org/plugins/badgearoo/

1
Stefan

これはうまくいくはずです。

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

    if (preg_match("/author/", $url )) {
        $lastSlash = strrpos( $url, "/");
        return substr( $url, $lastSlash, strlen($url));
    }
}

これは最後のスラッシュの後にすべてを返します。

1
sarcastasaur

URLから著者名を取得する2つの方法

  1. get_query_var()を使用する
// http://example.com/author/peter
$author_name = get_query_var('author_name'); // peter
  1. 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

詳細については、 カスタム作成者情報 を参照してください。

1
Anish