首页 > 解决方案 > 使用 REMOTE_ADDR 变量时,Wordpress 给出错误“出了点问题。您的更改可能尚未保存。(..)”

问题描述

我想设置以下内容 - 从特定 IP 访问页面将显示一个特定的 < div > ,对于从不同 IP 访问该页面的任何其他人来说,该页面将被隐藏。

WordPress 5.2.2;我尝试了几种方法来执行以下想法,但我的总体想法是使用 if 语句将 REMOTE_ADDR 与我精心挑选的地址进行比较,然后回显样式以显示我想要的块(提供地址相同)。我也尝试转义 PHP 并执行必要的 CSS,但我遇到了同样的问题。无论如何,我都不是经验丰富的程序员,所以我只能假设我在某个地方犯了错误。

if ($_SERVER['REMOTE_ADDR'] == 'xx.xxx.xx.xxx' ) { echo '<style>.elementor-element-6788e0e{display:block!important;}</style>'; }

不一定是代码不工作 - 它实际上服务于它的目的,并且该块仅在通过该 IP 访问时显示。但是,只要我在 if 语句括号之间添加任何内容,Wordpress 就几乎无法运行。

“出了点问题。您的更改可能未保存。请重试。您也有可能需要手动修复并通过 FTP 上传文件。” - 保存 PHP 时。

“好像出了点问题。等几秒钟,然后再试一次。” - 保存 CSS 时。

添加菜单项不起作用等。

我希望有人可以教育我这些错误的原因,或者向我展示解决 CSS 问题的更正确的方法。

提前致谢!

标签: phpwordpress

解决方案


将此函数插入​​到functions.php中以在每个帖子中删除此div,当然,您可以根据需要修改此函数:

add_filter( 'the_content', function( $content ) {
  return preg_replace('#<div class="elementor-element-6788e0e">(.*?)</div>#', '', $content);
}, 0);

或仅在 post.php 文件中使用它:

return preg_replace('#<div class="elementor-element-6788e0e">(.*?)</div>#', '', $content);

推荐阅读