Я хочу знать страну посетителя, используя PHP и отображать ее на странице WordPress. Но когда я добавляю PHP-код на странице WordPress или Post, он дает мне ошибку. Как добавить PHP-код на странице WordPress и 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 не выполняет PHP в пост / содержание страницы по умолчанию, если у него нет короткого кода.
Самый быстрый и простой способ сделать это – использовать плагин, который позволяет запускать PHP, встроенный в почтовый контент.
Есть еще два «быстрых и простых» способа сделать это без плагина:
Сделайте его коротким кодом (поместите его в functions.php
и повторите его название страны), что очень просто – см. Здесь: Shortcode API в WP Codex
Поместите его в файл шаблона – создайте собственный шаблон для этой страницы на основе шаблона страницы по умолчанию и добавьте PHP в файл шаблона, а не в почтовый контент: пользовательские шаблоны страниц
Вы не можете использовать 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 .
Вы можете создать отдельный шаблон страницы для этого или вы можете использовать этот плагин http://wordpress.org/plugins/exec-php/
создание шаблона страницы – хороший вариант.
Когда я пытался сделать что-то очень похожее, я в конечном итоге сделал что-то в этом направлении:
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 } }