向注销用户显示未发布的帖子?

时间:2010-08-29 作者:Daniel Bachhuber

我们正在开发一个插件,任何登录用户都可以提交一个新的“pitch”,或自定义状态为“pitch”的标准帖子类型。一旦广告投放到系统中,其他登录用户可以对想法进行投票、自愿参与或对正在进行的故事进行评论。

通过查询数据库中包含的帖子,可以在单个视图中列出所有未发布的帖子post_status != \'publish\'. 我想对其进行设置,以便登录和未登录的访问者都可以单击标题并在单个视图上查看帖子。默认WordPress行为是返回404,除非您有足够的权限。我相信viewing permissions are handled in the query object, 我看不到一个简单的方法来解决他们。

有什么创意吗?提前谢谢。

2 个回复
最合适的回答,由SO网友:Daniel Bachhuber 整理而成

回答了我自己的问题。事实证明,WordPress 2.9.2非常简单。基本上,我applied a filter to \'the_posts\' 如果对象为空,将运行另一个查询。因为我们正在查找尚未发布的帖子,所以我们还需要使用自己的自定义SQL。尝试使用WP\\u查询对象将使您陷入无休止的递归循环。

SO网友:prettyboymp

如果您使用的是WP 3.0+,则应该能够使用register\\u post\\u status()方法将新状态注册为public。我还没有在法典中看到它,但下面是记录的内容:

/**
 * Register a post type. Do not use before init.
 *
 * A simple function for creating or modifying a post status based on the
 * parameters given. The function will accept an array (second optional
 * parameter), along with a string for the post status name.
 *
 *
 * Optional $args contents:
 *
 * label - A descriptive name for the post status marked for translation. Defaults to $post_status.
 * public - Whether posts of this status should be shown in the admin UI. Defaults to true.
 * exclude_from_search - Whether to exclude posts with this post status from search results. Defaults to true.
 *
 * @package WordPress
 * @subpackage Post
 * @since 3.0.0
 * @uses $wp_post_statuses Inserts new post status object into the list
 *
 * @param string $post_status Name of the post status.
 * @param array|string $args See above description.
 */
function register_post_status($post_status, $args = array()) {....
基于此,您应该能够拨打:

function add_pitch_status() {
    register_post_status(\'pitch\', array(\'public\'=>true));
}
add_action(\'init\', \'add_pitch_status\');

结束

相关推荐

是否在URI请求参数表单中使用联合/交集查询_POSTS变量?

通常,在创建某种形式的查询时,我会对参数使用一个数组,如下所示: $postslistArgs = array( \'child_of\' => 320, \'parent\' => 320 ); $postslist = get_pages($postslistArgs);但是,在其他情况下,我还需要/想要使用URI样式的查询参数,如下所示:get_pages(\'child_of=