在WordPress页面和帖子中插入PHP代码

2022-08-30 11:50:54

我想知道使用PHP的访问者国家/地区,并将其显示在WordPress页面上。但是当我将PHP代码添加到WordPress页面或发布时,它会给我一个错误。

我们如何在WordPress页面和帖子上添加PHP代码?

<?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。

还有另外两种“快速简便”的方法可以在没有插件的情况下完成它:

  • 让它成为一个短代码(把它放进去,让它呼应国家名称),这很容易 - 请参阅这里:WP Codex的短代码APIfunctions.php

  • 将其放入模板文件中 - 根据默认页面模板为该页面创建自定义模板,并将PHP添加到模板文件而不是帖子内容中:自定义页面模板


答案 2

您不能在WordPress后端页面编辑器中使用PHP。也许使用插件,您可以,但不是开箱即用。

最简单的解决方案是创建一个短代码。然后你可以使用这样的东西

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


推荐