it-swarm.com.ru

Вставить PHP код в WordPress Page и Post

Я хочу узнать страну посетителя с помощью PHP и отобразить ее на странице WordPress. Но когда я добавляю PHP код на страницу WordPress или отправляю сообщение об ошибке, я получаю сообщение об ошибке .... Как можно мы добавляем PHP код в Wordpress Page и 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 не выполняет PHP в содержимом записей/страниц по умолчанию, если у него нет шорткода.

Самый быстрый и простой способ сделать это - использовать плагин, который позволяет запускать PHP, встроенный в содержимое публикации.

Есть два других «быстрых и простых» способа сделать это без плагина:

  • Сделайте его коротким кодом (поместите его в functions.php и сделайте так, чтобы оно повторяло название страны), что очень легко - см. Здесь: API шорткода в WP Codex

  • Поместите его в файл шаблона - создайте пользовательский шаблон для этой страницы на основе шаблона страницы по умолчанию и добавьте PHP в файл шаблона, а не в содержимое публикации: Пользовательские шаблоны страниц

53
Ennui

Вы не можете использовать PHP в редакторе внутренних страниц WordPress. Может быть, с плагином вы можете, но не из коробки.

Самым простым решением для этого является создание шорткода. Тогда вы можете использовать что-то вроде этого

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' );

Смотрите Shortcode_API .

12
Dinesh

Вы можете создать отдельный шаблон страницы для этого или вы можете использовать этот плагин http://wordpress.org/plugins/exec-php/

создание шаблона страницы является хорошим вариантом.

2
Mansoorkhan Cherupuzha

Когда я пытался сделать что-то очень похожее, в итоге я сделал что-то вроде этого:

wP-содержание/темы/ресурсы/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