是否有办法限制哪些人可以在一个特定类别中查看帖子,以便只有发布该帖子的用户才能看到它们?
我已经设置了一个自定义帖子类型,其中包含自己的模板,自定义帖子状态和新类别。我希望此类别中的帖子仅对发布它和管理员的用户可见。
我尝试在下面的代码中执行此操作,但它不起作用 - 只有管理员才能看到帖子。
<?php
/**
* The template for displaying all single posts.
*/
get_header(); ?>
<?php
$user_id = the_author_meta('ID');
$admin_ch = get_user_by('id', 1);
$cu_user = get_current_user_id();
if($cu_user == $user_id || $cu_user == $admin_ch) {
while ( have_posts() ) : the_post(); ?>
<div class="container-block">
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<div id="sh">
<header class="entry-header">
<?php the_title( '<h1 class="entry-title">', '</h1>' ); ?>
<?php if ( 'post' === get_post_type() && $meta = screenr_posted_on( false ) ) : ?>
<?php
endif; ?>
<?php
if ( ! get_theme_mod( 'disable_featured_image', 0 ) ) {
if (has_post_thumbnail()) {
echo '<div class="entry-thumb">';
the_post_thumbnail('screenr-blog-list');
echo '</div>';
}
}
?>
</header><!-- .entry-header -->
</div>
<div class="entry-meta">
<span class="p-date">
On
<?php $post_date = get_the_date( 'l F j, Y' ); echo $post_date; ?>
By
<?php $user_name = the_author_meta( 'display_name', $ID ); echo $user_name; ?>
</span>
</div><!-- .entry-meta -->
<div class="entry-content">
<?php
the_content( sprintf(
/* translators: %s: Name of current post. */
wp_kses( esc_html__( 'Continue reading %s', 'screenr' ), '<span class="meta-nav">→</span>' ),
the_title( '<span class="screen-reader-text">"', '"</span>', false )
) );
wp_link_pages( array(
'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'screenr' ),
'after' => '</div>',
) );
?>
</div><!-- .entry-content -->
<?php show_publish_button(); ?>
</article><!-- #post-## -->
</div>
<?php endwhile; // End of the loop.
} else {
echo "You can't show this";
}
?>
<?php get_footer(); ?>
答案 0 :(得分:0)
它不会让我留下这个评论,但在这一行:
if($cu_user == $user_id || $admin_ch) {
将其更改为:
if($cu_user == $user_id || $cu_user == $admin_ch) {
正如它所写的,在或之后,没有争论。你也需要在那里发表一个论点。
正确的功能是:
get_the_author_meta('ID')