通过自动保存重置自定义POST元值

时间:2015-05-06 作者:Leo

我创建了一个帖子查看计数器插件,每次查看/刷新帖子时都会增加一个计数。

计数正常,但如果编辑实时帖子,则自动保存功能会在生成自动保存时获取视图计数,因此当我更新帖子时,视图计数会随着使用创建自动保存时的视图计数而减少,而不是当前值。

例如,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值,是否生成了自动保存?

这与常见的元数据丢失不同,因为数据是发布的,而不是最新的数据

1 个回复
最合适的回答,由SO网友:Leo 整理而成

我已经设法找到了背后的原因,并创建了一个适合我需要的解决方案。

在编辑后页面的屏幕选项下,有一个名为“自定义字段”的选项。这将列出针对帖子保存的所有自定义元值,并允许您创建新值和编辑现有值。

打开要编辑的帖子时,此时的视图计数将添加到“自定义字段”部分的输入字段中。当我在几分钟后保存时,即使视图计数增加了,发布的值仍然是打开编辑窗口时添加的值。

为了解决这个问题,我在我的主题函数文件中添加了以下代码,以从编辑窗口中删除自定义字段部分。

<?php 
function remove_post_custom_fields() {
    remove_meta_box( \'postcustom\' , \'post\' , \'normal\' ); 
}
add_action( \'admin_menu\' , \'remove_post_custom_fields\' );
?>

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在