Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Insert PHP code In WordPress Page and Post

Tags:

php

wordpress

I want to know the visitor country using PHP and display it in on a WordPress Page. But when I add PHP code to a WordPress page or post it gives me an error.

How can we add PHP code on WordPress pages and posts?

<?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']; 
like image 451
Prince Avatar asked Sep 19 '13 13:09

Prince


People also ask

Can we use PHP in WordPress?

WordPress is written using PHP as a programming language. You definitely can use PHP if you want to develop for WordPress, but you don't have to.

How do I import a PHP page into WordPress?

you can use those plugins : wordpress.org/extend/plugins/exec-php or wordpress.org/extend/plugins/php-code-widget Hope it will help!


2 Answers

WordPress does not execute PHP in post/page content by default unless it has a shortcode.

The quickest and easiest way to do this is to use a plugin that allows you to run PHP embedded in post content.

There are two other "quick and easy" ways to accomplish it without a plugin:

  • Make it a shortcode (put it in functions.php and have it echo the country name) which is very easy - see here: Shortcode API at WP Codex

  • Put it in a template file - make a custom template for that page based on your default page template and add the PHP into the template file rather than the post content: Custom Page Templates

like image 80
Ennui Avatar answered Oct 12 '22 12:10

Ennui


You can't use PHP in the WordPress back-end Page editor. Maybe with a plugin you can, but not out of the box.

The easiest solution for this is creating a shortcode. Then you can use something like this

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

See the Shortcode_API.

like image 34
Dinesh Avatar answered Oct 12 '22 12:10

Dinesh