J'essaie de concaténer mon site_url et une chaîne, mais cela ne fonctionne pas. Voici ce que je fais:
$myurl = site_url();
var_dump($myurl);
$url = "https" . $myurl . "/inbox/?fepaction=viewmessage&fep_id=" . $inserted_message->ID;
var_dump($url); die;
La sortie ressemble à ceci:
string (31) "//zgp.mydomain.be" string (78) "https:/inbox /? fepaction = viewmessage & fep_id = 4813"
Comme vous pouvez le constater, il n’est pas fusionné. Comment se peut-il?
Sans savoir exactement ce que vous essayez de faire, il semble que vous souhaitiez ajouter des variables de requête à l'URL. WordPress a des méthodes pour gérer cela correctement, sans concaténation manuelle de chaînes.
Consultez la documentation de add_query_arg()
pour plus de détails: https://developer.wordpress.org/reference/functions/add_query_arg/
Vous pouvez reconstruire l'URL et ajouter des variables de requête à la requête d'URL en utilisant cette fonction. Il y a deux façons d'utiliser cette fonction. soit une clé unique et une valeur, ou un tableau associatif.
En utilisant une seule clé et valeur:
add_query_arg( 'key', 'value', 'http://example.com' );
Créerait http://example.com/?key=value
Utiliser un tableau associatif:
add_query_arg( array(
'key1' => 'value1',
'key2' => 'value2',
), 'http://example.com' );
Cela créerait http://example.com/?key1=value1&key2=value2
Ce que vous recherchez est home_url()
.
Cela renverra l'adresse du site et non le chemin de votre installation WP.
Parfois, les solutions les plus faciles sont les meilleures ...
Jetez un coup d'oeil à _ RÉFÉRENCEsite_url
.
Il faut deux paramètres:
$ chemin (chaîne) (facultatif) Chemin à ajouter à l'URL du site. Par défaut: aucun
$ scheme (chaîne) (facultatif) Contexte pour le protocole de l'URL renvoyée. Définir $ scheme remplacera le contexte par défaut. Les valeurs autorisées sont 'http', 'https', 'login', 'login_post', 'admin' ou 'relatif'. Par défaut: null
Comme vous pouvez le constater, vous n'avez pas besoin de tout ce code ...
Vous pouvez simplement utiliser:
$url = site_url('/inbox/?fepaction=viewmessage&fep_id=' . esc_url($inserted_message->ID), 'https');