Вставьте код PHP в страницу WordPress и пост
Я хочу узнать страну посетителя, использующую 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 Country name [Ex: United States]
$country=$visitor_details['countryName'];
Ответы
Ответ 1
WordPress не выполняет PHP в пост/содержание страницы по умолчанию, если у него нет короткого кода.
Самый быстрый и простой способ сделать это - использовать плагин, который позволяет запускать PHP, встроенный в почтовый контент.
Есть два других "быстрых и простых" способа выполнить его без плагина:
-
Сделайте его коротким кодом (поместите его в functions.php
и попросите его название страны), что очень просто - см. здесь: Shortcode API в WP Codex
-
Поместите его в файл шаблона - создайте собственный шаблон для этой страницы на основе шаблона страницы по умолчанию и добавьте PHP в файл шаблона, а не в пост-контент: Пользовательские шаблоны страниц
Ответ 2
Вы не можете использовать 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.
Ответ 3
Вы можете создать отдельный шаблон страницы для этого или использовать этот плагин http://wordpress.org/plugins/exec-php/
создание шаблона страницы - хороший вариант.
Ответ 4
Когда я пытался выполнить что-то очень похожее, я в конечном итоге сделал что-то в этом духе:
сор-содержание/темы/ресурсы/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
}
}