php - php wordpress 根据非本地IP地址条件隐藏特定导航项

标签 php wordpress navigation ip conditional

对于工作外联网网站,我有一个可以在本地完全访问的网站。该网站现在也可以从外部完全访问。然而,有一些带有子菜单项的 1 级导航项是 secret 的,只能在工作环境中使用。

在 php 中,我知道如何根据 IP 地址将网站访问者重定向到受限页面。但这是一个原始的解决方案,会中断用户体验。我也不想用密码保护页面,因为这也需要用户在工作环境中填写该密码。

这是我用于重定向的代码:

<?php
if (!preg_match('/^192/', $_SERVER['REMOTE_ADDR'])) {
header('HTTP/1.1 403 Forbidden');
header('Location: notallowed.php');
exit;
}
?>

我想知道,如何将此逻辑应用于 wp_nav 以从导航中排除特定菜单项?

最佳答案

首先我要声明我不是 WordPress 开发人员。也就是说,据我所知,您应该能够为您的导航菜单使用自定义助行器。在您的自定义助行器中,您可以根据上面列出的 IP 代码有条件地添加或删除您想要/不想显示的导航选项。但是,您仍然希望将该代码保留在受限页面中,因此如果外部共享链接,他们仍然无法访问。

一种更简洁的限制 IP 地址的方法是使用 .htaccess。您应该能够将其配置为将某些网页限制为仅本地访问。这与自定义助行器相结合将是最干净的。

http://premium.wpmudev.org/blog/limit-access-login-page/

一些自定义助行器教程:

https://wordpress.stackexchange.com/questions/14037/menu-items-description-custom-walker-for-wp-nav-menu/14039#14039

http://code.tutsplus.com/tutorials/understanding-the-walker-class--wp-25401

关于php - php wordpress 根据非本地IP地址条件隐藏特定导航项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29701701/

相关文章:

android - Restful API : Unable to get information from Wordpress Website

JSF 后退按钮

jquery - bx slider : How to continue auto sliding after clicking in default bx pager?

html - 固定导航内部链接

php - fatal error : maximum execution time exceeded when generating mass thumbnails in php

php - 更改 Azure 网站上的缓存控制时间

wordpress - xml 解析错误 xml 或文本声明不在 wordpress 提要中的实体开头

php - 如何从 Phar 文件中访问外部文件?

php - 获取父工单的用户 ID - MySQL

php - WP_insert_post 还添加了一个菜单项