如何实现特色帖子编号的自动化?

时间:2012-04-30 作者:Average Joe

Possible Duplicate:
featuring old articles without messing up with the archive

假设您有一个名为“特色”的类别。你可以用它来写文章。你的主题有一个区域可以显示那些特色帖子,还有空间可以显示最后5篇特色帖子。

你想让管理工作尽可能简单,以至于你只想将帖子检查到“特色”类别,而不想稍后取消选中。您基本上只是在检查,而从不取消检查。

问题是WP使用post\\u数据来查找最近的帖子。但是,如果你想写一篇很老的文章,你会怎么做?你是怎么处理的?更改post\\u日期?

如果你将该帖子选入“特色”类别,那么该帖子将不会进入前5名,因为其他碰巧是“特色”的帖子以及最近发布的帖子可能很容易将其推下。

在这种情况下,我别无选择,只能更改文章的post\\u日期,这对我来说似乎是完全错误的。因为这肯定会破坏归档数据的完整性。你5年前的帖子将以全新的形式出现。

有什么解决方案来解决这个问题?

我几乎认为wp\\u posts表应该有一个名为“post\\u feature\\u date”的特殊字段。

如果我们要使用“粘性帖子”功能,那也不会减少它,因为记住,我只对检查内容感兴趣,而不是取消检查。

如果你有一个简单的博客,我确实理解这个问题不是问题,但是如果你在管理一个巨大的门户时使用WP to the rim,那么你希望尽可能保存每个维护步骤。

3 个回复
SO网友:fuxia

问题是您滥用了“类别”字段。

在每篇文章上使用一个站点元字段(数组)和一个简单的复选框。保存帖子时,将其ID添加到站点元数组,如果数组长度超过5,则从中删除最后一个ID。然后,对特色帖子的查询只需从元字段中获取帖子ID,您永远不必手动取消选中某些内容。

SO网友:byronyasgur

这个怎么样?

将一个函数挂接到更新帖子中,该函数检查帖子是否已新添加到特色帖子类别(有关如何添加的想法,请参阅下文),如果是新添加的,则将当前日期添加到自定义字段(post\\u feature\\u date),现在您可以在“特色日期”之后而不是“发布日期”之后创建特色帖子

您还应该在更新帖子时检查帖子是否已从特色类别中删除,如果是,请将其post\\u feature\\u date自定义字段设置为null,以便您可以使用该字段确定帖子是否“在”特色类别中(也就是说,假设一篇文章有特色,那么它应该在post\\u feature\\u date中有一个日期,反之,如果更新文章的post\\u feature\\u date为空,那么该文章就不在特色类别中)

SO网友:davemac

以下是我的做法:

创建一个元框,用于创建一个名为“feature\\u on\\u homepage”的自定义字段,其值为“Yes”和“No”,并将其显示在编辑帖子页面上。这可以在函数中完成。php,或者您可以使用WPAlchemy MetaBox PHP Class, 它有点抽象,甚至More Fields plugin 或者类似的东西。

默认情况下,将此元数据库保持选中状态为“否”。然后,我们可以运行自定义查询,以获取特定类别中具有“feature\\u on\\u homepage”元框(值为“Yes”)的X个帖子,然后按修改进行排序:

$showFeaturedPost->query( \'cat=1&orderby=modified&post_type=post&meta_key=feature_on_homepage&meta_value=Yes&posts_per_page=5\' );

结束

相关推荐

使POSTS_PER_PAGE值在所有页面上都相同

这个我差不多做完了,只剩下一个小问题。希望你能帮助我。我有两个非常简单的自定义循环。一个用于粘性贴子,一个用于非粘性贴子。我已经设法使粘性帖子只显示在第1页上,而不显示在其余页面上(使用分页时),这正是我想要的。问题是:如果我将posts\\u per\\u page设置为8,并且数据库中有1篇粘性文章,那么第一页上会有9篇文章,其余页面上会有8篇文章。我已在循环之间使用此脚本成功更改了posts\\u per\\u page值:$postcount = $wp_query->post_count;