0

我正在尝试为 WordPress 构建一个插件。目标是在我希望!--nextpage-->标记去的地方使用简码(分页),然后对于普通访问者(未登录)在我的帖子中进行分页,但对于所有登录的访问者,让帖子继续没有看到分页(鼓励人们成为会员)。

问题是,我可以让它不为已登录的成员显示任何内容,但它会加载页面而不使用此代码为未登录的访问者添加分页。所以他们仍然可以看到整个内容,只是中间有链接,没有分页。

我需要调整什么才能使其正确加载?

function pagination_show( $atts = null ) {

    extract( shortcode_atts( array(
        'nextpage_text' => 'CONTINUED ON NEXT PAGE',
        'previous_text' => 'CONTINUED FROM PREVIOUS PAGE',
    ), $atts ) );
    $pagination = '';

    if(!is_user_logged_in()){
        $pagination = '<div class="plugin-pagination" style="overflow:auto;">';

        $next_post = get_next_post();
        if (!empty( $next_post )): 
            $pagination .= '<strong style="float:left;" class="nextpage"><em><a href="'.get_permalink( $next_post->ID ).'">'. esc_attr($nextpage_text) .'</a></strong></em><!--nextpage-->';
        endif;

        $prev_post = get_previous_post();
        if (!empty( $prev_post )): 
            $pagination .= '<strong style="float:right;" class="previouspage"><em><a href="'.get_permalink( $prev_post->ID ).'">'. esc_attr($previous_text) .'</a></strong></em><!--previouspage-->';
        endif;

        $pagination .= '</div>';
    }
    return  $pagination ;
}

add_shortcode('pagination', 'pagination_show');
4

1 回答 1

0

您应该使用wp_link_pages进行分页。

对于已登录的用户,使用 the_content 过滤器来显示没有分页的内容。

例如,在您的 post.php(或任何模板)文件中

if( is_user_logged_in() ) :
  echo apply_filters( 'the_content', $post->post_content );
else :
  the_content();
  wp_link_pages( $my_args );
endif;
于 2013-07-19T19:09:30.143 回答