Je veux connaître le pays du visiteur en utilisant PHP et l'afficher dans une page WordPress.Mais lorsque j'ajoute du code PHP dans une page WordPress ou que je l'envoie, je me trompe. Comment pouvons-nous ajouter du code PHP dans Wordpress Page et Post.
<?PHP
try{
function visitor_country()
{
$client = @$_SERVER['HTTP_CLIENT_IP'];
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
$remote = $_SERVER['REMOTE_ADDR'];
$result = "Unknown";
if(filter_var($client, FILTER_VALIDATE_IP))
{
$ip = $client;
}
elseif(filter_var($forward, FILTER_VALIDATE_IP))
{
$ip = $forward;
}
else
{
$ip = $remote;
}
$ip_data = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$ip));
if($ip_data && $ip_data->geoplugin_countryName != null)
{
$result = array('ip'=>$ip,
'continentCode'=>$ip_data->geoplugin_continentCode,
'countryCode'=>$ip_data->geoplugin_countryCode,
'countryName'=>$ip_data->geoplugin_countryName,
);
}
return $result;
}
$visitor_details= visitor_country(); // Output Coutry name [Ex: United States]
$country=$visitor_details['countryName'];
WordPress n'exécute pas PHP dans le contenu de la publication/de la page par défaut, à moins d'avoir un shortcode.
Pour ce faire, le moyen le plus simple et le plus rapide consiste à utiliser un plug-in vous permettant d'exécuter PHP intégré au contenu de publication.
Il existe deux autres moyens "rapides et faciles" de le réaliser sans plugin:
Faites-en un shortcode (mettez-le dans functions.php
et faites-le afficher le nom du pays), ce qui est très facile - voir ici: API Shortcode dans WP Codex
Mettez-le dans un fichier modèle - créez un modèle personnalisé pour cette page en fonction de votre modèle de page par défaut et ajoutez le PHP dans le fichier de modèle plutôt que le contenu de la publication: Modèles de page personnalisés
Vous ne pouvez pas utiliser PHP dans l'éditeur de page principal de WordPress. Peut-être qu'avec un plugin, vous pouvez, mais pas en dehors de la boîte.
La solution la plus simple consiste à créer un shortcode. Ensuite, vous pouvez utiliser quelque chose comme ça
function input_func( $atts ) {
extract( shortcode_atts( array(
'type' => 'text',
'name' => '',
), $atts ) );
return '<input name="' . $name . '" id="' . $name . '" value="' . (isset($_GET\['from'\]) && $_GET\['from'\] ? $_GET\['from'\] : '') . '" type="' . $type . '" />';
}
add_shortcode( 'input', 'input_func' );
Voir le Shortcode_API .
Vous pouvez créer un modèle de page séparé pour cela ou vous pouvez utiliser ce plugin http://wordpress.org/plugins/exec-php/
créer un modèle de page est une bonne option.
Quand j'essayais d'accomplir quelque chose de très similaire, j'ai fini par faire quelque chose dans ce sens
wp-content/themes/resources/functions.php
add_action('init', 'my_php_function');
function my_php_function() {
if (stripos($_SERVER['REQUEST_URI'], 'page-with-custom-php') !== false) {
// add desired php code here
}
}