web-dev-qa-db-fra.com

Insérer PHP code dans Wordpress Page et Post

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'];
32
Prince

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

53
Ennui

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 .

12
Dinesh

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.

2

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
    }
}
1
John Langford