有時,WordPress 開發人員可能需要自訂循環,這些循環無法使用標準循環(如類別、作者、索引、日期、存檔、分類法等)產生。其中之一是“我評論的帖子” >”。在問答網站中,它的意思是“我回答的問題”,因此許多開發人員可能需要它。在本教程的基礎上,我們可以建立另一個自訂循環。讓我們來創建這個部分。
前往您的主題資料夾並建立一個 myanswers.php
文件,然後將以下程式碼複製並貼上到其中:
<?php /* Template Name: myanswers */ ?> <?php get_header(); ?> <?php get_template_part( 'loop', 'myanswers' ); ?> <?php get_sidebar(); ?> <?php get_footer(); ?>
我們剛剛建立了名為 myanswers 的範本檔案。它將用於顯示我們的自訂循環。
留在您的主題資料夾中並建立名為loop-myanswers.php 的第二個檔案。並將以下程式碼貼到該文件中:
<?php if($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; ?> <?php echo $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; ?>
此文件用於在範本文件中產生我們的自訂循環。
開啟主題的主題函數檔案(functions.php)並將此函數和篩選器新增至該檔案:
add_filter('query_vars', 'parameter_queryvars' ); function parameter_queryvars( $qvars ) { /* Plugin Name: Parameter Plugin URI: https://webopius.com/ Description: A plugin to allow parameters to be passed in the URL and recognized by WordPress Author: Adam Boyse Version: 1.0 Author URI: http://www.webopius.com/ */ $qvars[] = 'paged'; return $qvars; }
這對函數和篩選器用於取得在永久連結結構網站中建立分頁所需的頁面 ID。
最後,前往您的儀表板,從頁面建立新頁面->新增頁面並將其命名為“myanswers”,預設為myanswers。在發布之前選擇此頁面的範本。在範本小工具中,您將看到包含 myanswers 選項的組合方塊。選擇它。
# 選擇 myanswers 選項後,按一下「發布」按鈕。
現在您可以使用 yoursite.com/myanswers url 作為顯示「您評論的貼文」循環的頁面。當然,不僅是您,每個登入使用者都可以看到自己的。
以上是為「我的評論貼文」建立個人化循環的詳細內容。更多資訊請關注PHP中文網其他相關文章!