如何禁用警告“此帖子在您的浏览器中的备份与下面的版本不同”?

时间:2016-09-27 作者:jchwebdev

我下面有一个小过滤器。当用户保存草稿时,它会用正则表达式替换特定字符串。

但是,使用此筛选器会导致警告“浏览器中此帖子的备份与以下版本不同。”

有没有办法“告诉”Wordpress在过滤器运行时不显示警告?

要重新创建:

创建草稿帖子。

在正文中,输入一行文本:

rcq[无论什么]

例如:。

rcqTestMsg

保存草稿。

这是代码。

更新:我认为发生了什么:我认为这是某种程度上触发了自动保存。js CheckPost()函数,它(显然)将屏幕上的文本与当前保存的版本进行比较。是否有方法仅在触发此筛选器时禁用自动保存或修订?还是我的代码中有什么东西混淆了修订系统?


function jchwebdev_rant_quote_question( $content ) { global $post; $pattern = \'/rcq/\'; $replacement = \'RC$1\'; if ($post->post_status == \'draft\') { return preg_replace($pattern, $replacement, $content); } else return $content; } add_filter( \'content_save_pre\' , \'jchwebdev_rant_quote_question\' , 10, 1);

4 个回复
SO网友:jaswrks

避免此错误的方法是确保wp-saving-post cookie的值设置为[post id]-saved, 如图所示here. 如你所见,如果发生这种情况,WordPress不会抱怨这种差异,因为它知道帖子被正确保存了。

还可以看看this line 注意WordPresshandles this for you 已经因此,您看到的错误可能与浏览器中的一些轻微cookie损坏有关。

我用你的插件运行了几个测试,但我无法重现你报告的问题。因此,我的感觉是,您应该清除您域的所有浏览器cookie,并消除导致问题的损坏可能性。还要确保查看与cookie存储相关的WordPress配置设置。如果站点上的cookie设置有问题,则可能会影响对其运行测试时所看到的行为。

最后,检查以确保没有过滤内容,然后立即重定向或退出脚本,或执行其他可能阻止this line 一旦应用筛选器,就无法运行。这也可能导致你所看到的问题。

SO网友:T.Todua

我认为javascript将帮助您。使用此代码,看看是否有帮助:

add_action( \'add_meta_boxes\', function () { add_meta_box(\'myhtml_ID_123\',  \'smth\', \'draft_title_remover\');} );
function draft_title_remover( $post ) { ?>
    <script>
    nIntervId = setInterval(RemoveMyDiv, 1000);
    function RemoveMyDiv() {
      if(document.getElementById("message")){
          var x = document.getElementById("message");
          if( x.innerHTML.indexOf("The backup of this post in your browser") > -1){
            x.style.display="none";
          }
      }
    }
    </script>
    <?php 
}

SO网友:biziclop

如果要强制关闭通知,可以使用以下代码段:

add_action(\'in_admin_footer\', function(){
  remove_action(\'admin_footer\', \'_local_storage_notice\');
});
in_admin_footer 之前最近的操作admin_footer 在里面wordpress/wp-admin/admin-footer.php, 而且它总是跑步,所以这是一个防止跑步的好地方_local_storage_notice() 它将发出对话框的内容。

SO网友:Rishabh

获得警告的可能原因可以通过以下方式解决:wp-config.php 文件检查是否在此文件中WP_DEBUG 是真是假。如果不想看到警告,则必须将其设置为false 像这样

define(\'WP_DEBUG\', false);
如果您的WP_DEBUG 是真的(define(\'WP_DEBUG\', true);) 然后简单地把它弄错(define(\'WP_DEBUG\', false);).

但是,如果这不适用于,请尝试更换WP_DEBUG更改以下代码行

define(\'WP_DEBUG\', false);
进入这个

ini_set(\'log_errors\',\'On\');
ini_set(\'display_errors\',\'Off\');
ini_set(\'error_reporting\', E_ALL );
define(\'WP_DEBUG\', false);
define(\'WP_DEBUG_LOG\', true);
define(\'WP_DEBUG_DISPLAY\', false);
Note: 在尝试对此文件进行任何更改之前,请先对其进行备份,因为如果在更改代码时出错,则可能会导致一些不必要的问题。

相关推荐

使用wp_ins_post()插入新帖子后,该帖子对wp_Query不可见,但同样的WP_Query也适用于从wp-admin面板插入的帖子

制作脚本,在特定条件下向数据库添加新的自定义帖子。一切正常。但有一种流动。在用我的脚本将帖子写入数据库后,我无法用WP\\u查询将其提取出来。如果我直接从wp管理面板添加帖子,所有WOKR都可以。但如果我用脚本添加帖子,我无法用WP\\u查询提取它们。新添加的帖子显示在wp admin面板的帖子列表中,包含所有所需的值,这些都很酷,但对wp\\U查询不可见。只有在我在wp管理面板中更改帖子的任何自定义字段并按下更新按钮后,它才可见。参考页面后,一切都开始完美工作。新帖子似乎已经发布,当我列出所有此类可用帖