步骤 1转到您的主题文件夹并创建一个 myanswers.php 文件,然后将以下代码复制并粘贴到其中:
<?php /* template name: myanswers */ ?><?phpget_header(); ?><?phpget_template_part( 'loop', 'myanswers' ); ?><?php get_sidebar(); ?><?php get_footer(); ?>
我们刚刚创建了名为 myanswers 的模板文件。它将用于显示我们的自定义循环。
步骤 2留在您的主题文件夹中并创建名为loop-myanswers.php 的第二个文件。并将以下代码粘贴到该文件中:
<?phpif($wp_query->query_vars['paged']==0){$wp_query->query_vars['paged']=1;}$querystr = select $wpdb->posts.* from $wpdb->posts inner join $wpdb->comments on $wpdb->posts.id=$wpdb->comments.comment_post_id where $wpdb->posts.post_status='publish' and $wpdb->comments.user_id=.wp_get_current_user()->id. group by $wpdb->posts.id order by $wpdb->posts.post_date desc ;$lim_per_page= limit .($wp_query->query_vars[posts_per_page]*($wp_query->query_vars['paged']-1)).,.$wp_query->query_vars[posts_per_page];$query_for_count = $wpdb->get_results($querystr, object);$wp_query->max_num_pages=ceil($wpdb->num_rows/$wp_query->query_vars[posts_per_page]);$querystr=$querystr.$lim_per_page;$pageposts = $wpdb->get_results($querystr, object); ?><?php if ($pageposts): ?> <?php global $post; ?> <?php foreach ($pageposts as $post): ?> <?php setup_postdata($post); ?> <?php/// this part is loop from twentyten, you can change it however you want begin?><div id=post-<?php the_id(); ?> <?php post_class(); ?>><h2 class=entry-title><a href=<?php the_permalink(); ?> title=<?php printf( esc_attr__( 'permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?> rel=bookmark><?php the_title(); ?></a></h2> <div class=entry-meta> <?php twentyten_posted_on(); ?> </div><!-- .entry-meta --> <?php if ( is_archive() || is_search() ) : // only display excerpts for archives and search. ?> <div class=entry-summary> <?php the_excerpt(); ?> </div><!-- .entry-summary --> <?php else : ?> <div class=entry-content> <?php the_content( __( 'continue reading <span class=meta-nav>→</span>', 'twentyten' ) ); ?> <?php wp_link_pages( array( 'before' => '<div class=page-link>' . __( 'pages:', 'twentyten' ), 'after' => '</div>' ) ); ?> </div><!-- .entry-content --> <?php endif; ?> <div class=entry-utility> <?php if ( count( get_the_category() ) ) : ?> <span class=cat-links> <?php printf( __( '<span class=%1$s>posted in</span> %2$s', 'twentyten' ), 'entry-utility-prep entry-utility-prep-cat-links', get_the_category_list( ', ' ) ); ?> </span> <span class=meta-sep>|</span> <?php endif; ?> <?php $tags_list = get_the_tag_list( '', ', ' ); if ( $tags_list ): ?> <span class=tag-links> <?php printf( __( '<span class=%1$s>tagged</span> %2$s', 'twentyten' ), 'entry-utility-prep entry-utility-prep-tag-links', $tags_list ); ?> </span> <span class=meta-sep>|</span> <?php endif; ?> <span class=comments-link><?php comments_popup_link( __( 'leave a comment', 'twentyten' ), __( '1 comment', 'twentyten' ), __( '% comments', 'twentyten' ) ); ?></span> <?php edit_post_link( __( 'edit', 'twentyten' ), '<span class=meta-sep>|</span> <span class=edit-link>', '</span>' ); ?> </div><!-- .entry-utility --> </div><!-- #post-## --> <?php endforeach; /// this part is loop from twentyten, you can change it however you want end?> <?php else : ?> <h2 class=center>not found</h2> <p class=center>sorry, but you are looking for something that isn't here.</p> <?php include (templatepath . /search.php); ?> <?php endif; ?> <?phpecho $wp_query->max_num_pages; if ( $wp_query->max_num_pages > 1 ) : ?> <div id=nav-below class=navigation> <div class=nav-previous><?php next_posts_link( __( '<span class=meta-nav>←</span> previous', 'twentyten' ) ); ?></div> <div class=nav-next><?php previous_posts_link( __( 'next<span class=meta-nav>→</span>', 'twentyten' ) ); ?></div> </div><!-- #nav-below --><?php endif; ?>
此文件用于在模板文件中生成我们的自定义循环。
步骤 3打开主题的主题函数文件(functions.php)并将此函数和过滤器添加到该文件:
add_filter('query_vars', 'parameter_queryvars' );function parameter_queryvars( $qvars ){/* plugin name: parameterplugin uri: https://webopius.com/description: a plugin to allow parameters to be passed in the url and recognized by wordpressauthor: adam boyseversion: 1.0author uri: http://www.webopius.com/*/$qvars[] = 'paged';return $qvars;}
这对函数和过滤器用于获取在永久链接结构站点中构建分页所需的页面 id。
步骤 4最后,转到您的仪表板,从页面创建新页面->添加新页面并将其命名为“myanswers”,默认情况下其slug将为myanswers。在发布之前选择此页面的模板。在模板小部件中,您将看到包含 myanswers 选项的组合框。选择它。
选择 myanswers 选项后,单击“发布”按钮。
完成!现在您可以使用 yoursite.com/myanswers url 作为显示“您评论的帖子”循环的页面。当然,不仅是您,每个登录用户都可以看到自己的。
以上就是为“我的评论帖子”建立个性化循环的详细内容。
