对于工作外联网网站,我有一个可以在本地完全访问的网站。该网站现在也可以从外部完全访问。然而,有一些带有子菜单项的 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/
一些自定义助行器教程:
http://code.tutsplus.com/tutorials/understanding-the-walker-class--wp-25401
关于php - php wordpress 根据非本地IP地址条件隐藏特定导航项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29701701/