WordPress在标题中显示访问者的IP


Wordpress to show visitor's IP in the title

我的问题:有没有办法在Wordpress的页面标题中显示访问者的IP地址?到目前为止,我所做的是:我的IP查找。

我可以做任何插件或调整吗?

这是文件:标头.php

请帮忙!!

我是这个主题及其框架的作者。我只是要修改一下 Matthew 给你的代码。对于主题和框架的未来更新,最好避免在子主题中实际编辑标头.php,而是使用框架的挂钩系统:

http://www.wpjumpstart.com/tutorial/primary-framework-action-hooks/

themeblvd_title是框架的行动之一。它已经挂上了一个默认函数,可以按照您现在看到的方式显示标题。您要执行的操作相当容易,因为您实际上并没有修改该默认函数,而只是添加到操作中。

如果动作钩子的概念对你来说完全陌生,一定要看看这篇文章 - www.wpjumpstart.com/tutorial/actions/ - 了解这些基本的WordPress开发概念真的会扩展你将能够做的事情,推进你的自定义。

因此,要实现Mathew所说的,您需要从"孩子"主题的功能.php执行以下操作:

function my_title_addon() {
    if (is_page(10)) { //Check if we are on the correct page
        echo '|'; //Just a spacer between the default title and your addition
        do_shortcode('[shortcode]');
    }
}
add_action( 'themeblvd_title', 'my_title_addon' );

这里还有一件大事需要注意。我注意到在您的网站上,您正在使用Alyeska 2.0。您应该更新到上周在ThemeForest上发布的最新版本Alyeska 2.1,其中包含框架的v2.1。里面是一个新的示例子主题,其中包含略微修改的结构,如本视频中所述 - vimeo.com/41331677

如果你不使用这个新的子主题结构,我发布的上面代码会把你的IP短代码添加到themeblvd_title的开头,这不是你想要的。如果您选择保留当前主题版本和子主题结构,则上述add_action的优先级需要高于默认的 10,如下所示:

function my_title_addon() {
    if (is_page(10)) { //Check if we are on the correct page
        echo '|'; //Just a spacer between the default title and your addition
        do_shortcode('[shortcode]');
    }
}
add_action( 'themeblvd_title', 'my_title_addon', 11 ); // Higher priority so it comes after default title function

以下是使用过滤器钩子修改标题的方法。

将其添加到主题函数.php文件或您自己的插件之一中:

add_filter( 'wp_title', 'add_ip_to_title', 10, 3 );
function add_ip_to_title($title, $sep = '', $location = '') {
    return $title . $sep . "visitor IP info here";
}

https://codex.wordpress.org/Plugin_API/Filter_Reference/wp_title

在主题中编辑header.php文件。这是生成标签的地方。它应该是wp-content/themes/alyeska-child/header.php或者如果它不存在wp-content/themes/alyeska/header.php。

如果您发布的代码正在生成您的标题(如果您无法判断,则为header.php文件),我们可以告诉您具体添加到何处。

如果 IP 信息是通过短代码生成的,则可以在 PHP 中使用do_shortcode('[shortcode])直接使用 PHP 运行短代码。

如果您只想在一个页面上执行此操作,则必须检测正确的页面并对标题的更改进行条件化。您需要知道所需页面的页面标识器,但您可以使用以下内容:

<title>
<?php
    themeblvd_title();
    if (is_page(10)) { //Check if we are on the correct page
        echo '|'; //Just a spacer between the default title and your addtion
        do_shortcode('[shortcode]');
    }
?>
</title>

有关is_page的更多信息:http://codex.wordpress.org/Function_Reference/is_page

为了补充其他一些答案,为了获取他们的IP地址,它可能会根据您的服务器环境而略有不同。 只需制作一个名为test的文件.php并将其放在Web可访问的位置:

<?php
echo phpinfo();
?>

然后,查找可以检索用户 IP 地址的位置。 不幸的是,如果您的PHP在反向代理中运行,则正常位置将只有本地主机的IP。 但是还有很多其他的环境变量可以从中获取IP。 以下是要检查的地方:

"Apache 环境"或"HTTP 标头信息"或"PHP 变量"部分下。

然后,如果您看到真实的 IP 地址(将信息页面上显示的地址与您可能从 whatismyip.com 获得的地址进行比较),那么您可以使用 PHP 的预定义变量之一在上面描述的函数中通过 drew010 访问该值。