web-dev-qa-db-fra.com

Comment obtenir une partie de l'URL et mettre en shortcode?

J'ai ce shortcode

[broo_user_badges username=""]

et je dois mettre le nom d'utilisateur entre "" Mais, le nom d'utilisateur est dans l'URL:/author/peter. Ainsi, lorsque la page domain.com/author/peter a été chargée, ce shortcode devrait être généré sur cette page:

[broo_user_badges username="peter"]

J'ai trouvé ça

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

ici Comment obtenir les paramètres d'URL en shortcode? mais je ne comprends pas comment utiliser cela sur mon cas (structure/author/peter url).

Edit: plugin https://wordpress.org/plugins/badgearoo/

1
Stefan

Cela devrait fonctionner:

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

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

Cela retournera tout après la dernière barre oblique.

1
sarcastasaur

Deux façons d'obtenir le nom de l'auteur à partir de l'URL

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

Pour plus d'informations, lisez Informations personnalisées sur l'auteur

1
Anish