如何防止WordPress更新修改后的时间?

时间:2016-09-01 作者:Mikhail Morfikov

有时我想稍微修改一下帖子,但帖子已经发布在我的博客上了。更改涉及添加/删除标签或重写帖子标题(只是为了更正拼写错误的单词)。通过按“快速编辑”,可以使用管理面板完成所有操作。

不幸的是,该操作更新了“修改的时间”。我使用的是“修改时间”,这样人们就可以知道帖子是否被修改了。但我想禁用修改后的时间更新,以防我只做一些像上面所述的小更改。有办法吗?

3 个回复
SO网友:nydame

已经回答了如何自定义更新哪些post数据的问题elsewhere on StackExchange.

以下是如何停止更新修改日期的具体示例:

function stop_modified_date_update( $new, $old ) {
    $new[\'post_modified\'] = $old[\'post_modified\'];
    $new[\'post_modified_gmt\'] = $old[\'post_modified_gmt\'];
    return $new;
}

add_filter( \'wp_insert_post_data\', \'stop_modified_date_update\', 10, 2 );

// do stuff that updates post(s) here

remove_filter( \'wp_insert_post_data\', \'stop_modified_date_update\', 10, 2 );
注意:在完成特殊任务时,删除过滤器非常重要,除非你真的希望修改后的日期永远不会在网站上的任何地方更新。

快乐的编码!

SO网友:birgire

听起来您只是在单个post视图上显示此信息,而没有对其进行任何搜索。

因此,另一种方法是将上次修改的日期时间保存在隐藏的后置元字段中,例如。_wpse_content_modified.

例如,查看post_updated 钩住可以访问上一个post对象和修改后的post对象的位置。

这样一来,您就不必对核心功能进行不可逆转的数据修改,而您以后可能希望使用这些核心功能。

SO网友:Yco

虽然这并不能完全回答问题,但在显示修改后的日期之前,我会留出30分钟来快速更正一些错误。

<?php if ( get_the_modified_time( \'U\' ) > get_the_time( \'U\' ) + 1800 ) : ?>
    <div class="update"><?php the_modified_time( \'F j, Y g:i a\' ); ?></div>
<?php endif; ?>
这里是延迟+ 1800 (1800秒=30分钟)产生了不同。

相关推荐

使用Get_Posts获取不存在自定义字段的帖子

我想获取所有自定义字段hidden 不存在。这不起作用:$postsForSitemap = get_posts(array( \'numberposts\' => -1, \'orderby\' => \'modified\', \'post_type\' => array(\'post\', \'page\'), \'order\' => \'DESC\', \'meta_key\' =&g