我正在使用类别模板列出一系列自定义帖子,每个帖子都列出了一个文档链接。有些文件是公开的,有些是私有的。目前,如果帖子是公开的,则显示链接;但如果链接是私有的,我会附上“私有资源——请登录阅读”的声明。
我想让“登录”这个词成为一个链接,将任何未登录的用户发送到登录页面,然后将用户重定向回这个页面。但我无法让它发挥作用。我想也许 auth_redirect() 是要走的路,但也许我已经离开了。
这是当前循环的一个稍微简化的版本。
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// the loop
$private = get_post_custom_values('private'); // read custom field
if (isset($private[0]) && $private[0] == 'yes' ) { // if the post is private
if ( is_user_logged_in() ) {// and if the user is logged in
// display private post ?>
<div>
<h4><?php the_title(); ?></h4>
<?php get_post_custom_keys();?>
<p><?php the_content(); ?></p>
<p><a href="<?php echo get_post_meta($post->ID, "resourcelink", true); ?>">Resource Link</a></p>
<?php if (get_post_meta($post->ID, "private", true)==yes) {?>
<p class="private">This document private.</p>
<?php } ?>
</div>
<?php }
else { // if the user is not logged in
// want make the a login link, with redirect back to this page
// but now just tells user to log in ?>
<div>
echo the_title('<h4>','</h4>');
get_post_custom_keys();?>
<p><?php the_content(); ?></p>
<?php echo '<p>Private resource — please log in to read.</p>';
}
}
else { // if the post is public
// display public post, for every visitor ?>
<div>
<h4><?php the_title(); ?></h4>
<?php get_post_custom_keys();?>
<p><?php the_content(); ?></p>
<p><a href="<?php echo get_post_meta($post->ID, "resourcelink", true); ?>">Resource Link</a></p>
</div>
<?php }
endwhile;
endif;
?>