我正在使用wordpress 3.4(3.5之前的最后一个版本),我已经声明了一个post状态类型,以及一个名为agent. 这是一个自定义的帖子类型,property.
register_post_status( \'purchased\', array(
\'label\' => _x( \'Purchased\', \'post\' ),
\'public\' => false,
\'exclude_from_search\' => true,
\'show_in_admin_all_list\' => true,
\'show_in_admin_status_list\' => true,
\'label_count\' => _n_noop( \'Purchased <span class="count">(%s)</span>\', \'Purchased <span class="count">(%s)</span>\' ),
) );
我的问题是,我不想公开这些
public=false
) 但当我尝试使用我的用户(在admin中)预览它们时,它会说:
您没有预览草稿的权限。
EDIT 1
我的预览代码如下:
$nonce = wp_create_nonce(\'post_preview_\' . $post->ID);
$url = esc_url(add_query_arg(array( \'preview\' => \'true\', \'preview_id\' => $post->ID, \'preview_nonce\' => $nonce), get_permalink($post->ID)));
$previewUrl = "<a href=\\"" . $url . "\\" class=\\"btn btn-info btn-mini\\" target=\\"wp-preview\\" title=\\"" . esc_attr(sprintf(__(\'Preview %s\'), get_the_title())) . "\\" rel=\\"permalink\\">" . __(\'Preview\') . "</a>";
Jesse注意到了这个错误,真是太好了,但是,现在当我转到预览链接时,我发现了一个404错误(未找到)。具有
public = true
这不会发生,但会返回到不显示类别。
SO网友:Panagiotis
所以实际上,只要有人(即我)看到“草稿”后状态是如何工作的,一切都会更简单。
显然,wordpress codex没有揭示/记录许多变量,例如:
register_post_status(\'purchased\', array(
/* \'label\' => _x( \'Purchased\', \'post\' ),
\'public\' => false,
\'exclude_from_search\' => true,
\'show_in_admin_all_list\' => true,
\'show_in_admin_status_list\' => true,
\'label_count\' => _n_noop( \'Purchased <span class="count">(%s)</span>\', \'Purchased <span class="count">(%s)</span>\' ), */
\'label\' => _x(\'Purchased\', \'post\'),
\'protected\' => true,
\'_builtin\' => true, /* internal use only. */
\'label_count\' => _n_noop(\'Purchased <span class="count">(%s)</span>\', \'Purchased <span class="count">(%s)</span>\'),**
));
我从“草稿”中提取了代码(事实上我们都知道它是有效的),并将其复制为我的自定义帖子状态。因此,它现在对所有者可见,但对其他人不可见(在前端)。一旦出版,效果就很好了。