自定义帖子类型挂起状态的单一帖子预览

时间:2018-02-24 作者:Pukhraj Suthar

我已经创建了自定义帖子类型,并使用登录用户在前台自定义表单中创建了帖子,并将状态设置为“待定”。现在我想显示我创建的帖子预览,就像发布的帖子一样。

我像管理员一样点击了URLhttp://localhost/project/?post_type=deals&p=3305

但它是为管理员工作的,而不是为作者用户工作的。

另一方面,我们可以说,如何为作者显示挂起的自定义帖子只是为了预览。

我的代码--->>

\'public\' => true,\'publicly_queryable\' => true,\'show_ui\' => true, 
请帮忙

2 个回复
SO网友:Beee

如果您确实获得了\\u permalink($post\\u id),那么您应该获得预览链接。我也为我的网站做了同样的事情。作者应该能够看到这一点,除非有一些特定的过滤器阻止了这一点。

在帖子本身上,我用这个来表示它正在等待。

if ( get_post_status( $post_id ) == \'pending\' ) {
    echo \'<div class="site__notice uppercase">This is a preview. This profile has not been approved yet.</div>\';
}
你能分享一些代码或提供更多信息吗?

SO网友:Pukhraj Suthar

在函数中添加以下代码后,它就可以工作了。php

function preview_draft_posts($query) {

  if ( is_admin() || get_query_var(\'suppress_filters\') )
    return $query;


  $query->set(\'post_status\', array(\'publish\', \'pending\', \'draft\'));


  return $query;

}

if(isset($_GET[\'p\']) && isset($_GET[\'post_type\']) && ($_GET[\'post_type\'] == \'deals\' || $_GET[\'post_type\'] == \'events\')&& get_current_user_id() > 0){
    global $wpdb;
    $deal_posts = $wpdb->prefix . \'posts\';
    $sql_claim ="SELECT ID FROM $deal_posts WHERE ID=\'".$_GET[\'p\']."\' AND post_author=".get_current_user_id();
    $myrows = $wpdb->get_row( $sql_claim, ARRAY_A );
    if(isset($myrows[\'ID\']) ){

         add_filter(\'pre_get_posts\', \'preview_draft_posts\');
    }

}

结束

相关推荐

WooCommerce Single Products编辑弹性滑块设置

对于我的Woocommerce项目,我正在寻找一种解决方案来编辑单个产品页面上的图像滑块。Woocommerce将滑块、缩放和灯箱功能添加到产品库中。这对我来说很好,但我想更改滑块部分的选项。Woocommerce为此使用flexslider;http://flexslider.woothemes.com/ , 但由于flexslider已经由WooCommerce本身启动,因此我无法在之后更改选项。als没有选择杀死一个活动的flexslider并自己重新初始化它。我想我可以通过删除类名选择器(.woo