我创建了一个帖子查看计数器插件,每次查看/刷新帖子时都会增加一个计数。
计数正常,但如果编辑实时帖子,则自动保存功能会在生成自动保存时获取视图计数,因此当我更新帖子时,视图计数会随着使用创建自动保存时的视图计数而减少,而不是当前值。
例如,view count=100,我打开帖子进行编辑,生成自动保存,同时50人查看帖子,我单击帖子上的update,查看次数从150降回100
我的插件代码是:
function update_post_views_counter()
{
if(is_single())
{
if(get_post_type() == "post")
{
$id = get_the_ID();
$views = get_post_meta($id, "total_views", true);
if($views == "")
{
$views = 1;
add_post_meta($id, "total_views", $views);
}
else
{
$views++;
update_post_meta($id, "total_views", $views);
}
maintain_top_posts($id, $views);
}
}
}
add_action("wp_head", "update_post_views_counter");
更新帖子时,是否有方法排除更新total\\u views post meta值,是否生成了自动保存?
这与常见的元数据丢失不同,因为数据是发布的,而不是最新的数据
最合适的回答,由SO网友:Leo 整理而成
我已经设法找到了背后的原因,并创建了一个适合我需要的解决方案。
在编辑后页面的屏幕选项下,有一个名为“自定义字段”的选项。这将列出针对帖子保存的所有自定义元值,并允许您创建新值和编辑现有值。
打开要编辑的帖子时,此时的视图计数将添加到“自定义字段”部分的输入字段中。当我在几分钟后保存时,即使视图计数增加了,发布的值仍然是打开编辑窗口时添加的值。
为了解决这个问题,我在我的主题函数文件中添加了以下代码,以从编辑窗口中删除自定义字段部分。
<?php
function remove_post_custom_fields() {
remove_meta_box( \'postcustom\' , \'post\' , \'normal\' );
}
add_action( \'admin_menu\' , \'remove_post_custom_fields\' );
?>