今天奇它论坛@老白跟大家分享一下由倡萌原创的“WordPress网站B2主题美化之文章底部添加所属专题”。B2主题的专题功能有利于将相关的文章组织到一起,但是在专题中的文章内页,并没有关于该专题的其他信息,也没有引导用户阅读该专题的其他文章。实现的代码如下,将代码添加到子主题的 functions.php 和style.css即可。
(转载自https://www.wpdaxue.com/docs/b2/b2-dev/collection-posts,谢谢站长分享)
function文件代码
/** * 调用该文章所在专题的其他文章 * https://www.qitabbs.com/26089.html */ function b2child_get_collection_posts_list( $location = 'before' ) { if( is_singular('post') ) { $post_id = get_the_ID(); if( has_term( '', 'collection' ) ) { $terms = get_the_terms( $post_id, 'collection' ); if( $terms && !is_wp_error($terms) ) { foreach ( $terms as $term ) { $term_id = $term->term_id; $term_name = $term->name; $term_desc = $term->description; $args = array( 'post_type' => 'post', 'posts_per_page' => -1, 'nopaging' => true, 'ignore_sticky_posts' => true, 'order' => 'ASC', 'tax_query' => array( array( 'taxonomy' => 'collection', 'field' => 'term_id', 'terms' => $term_id, ), ), ); $the_query = new WP_Query( $args ); $count = $current = false; if ( $the_query->have_posts() ) { ob_start(); $i = 1; while ( $the_query->have_posts() ) { $the_query->the_post(); $count = $the_query->found_posts; if( $post_id == get_the_ID() ) { $current = $i; } $i++; } $class = 'collection-before'; if( $location == 'after' ) $class = 'collection-after'; if( ($location == 'before' && $current > 1) || ($location == 'after' && $current < $count) ){ echo '<div class="collection-posts '.$class.'">'; if( $location == 'before' ) { echo '<p class="before">文本是《<a target="_blank" title="'.$term_desc.'" href="'.esc_url( get_term_link($term_id) ).'">'.$term_name.'(共'.$count.'篇)</a>》专题的第 '.$current.' 篇。阅读本文前,建议先阅读前面的文章:</p>'; } elseif ( $location == 'after' ) { echo '<p class="after">您已阅读完《<a target="_blank" title="'.$term_desc.'" href="'.esc_url( get_term_link($term_id) ).'">'.$term_name.'(共'.$count.'篇)</a>》专题的第 '.$current.' 篇。请继续阅读该专题下面的文章:</p>'; } echo '<ul class="collection-posts-ul ">'; $i = 1; while ( $the_query->have_posts() ) { $the_query->the_post(); if( ( $location == 'before' && $i < $current ) || ( $location == 'after' && $i > $current ) ) { echo '<li><span>'.$i.'.</span><a href="'.esc_url( get_permalink() ).'">' . get_the_title() . '</a></li>'; } $i++; } echo '</ul>'; echo '</div>'; } } wp_reset_postdata(); return ob_get_clean(); } } } } } /** * 文章中添加该文章所属专题的其他文章列表 * https://www.qitabbs.com/26089.html */ function b2child_display_collection_posts( $content ) { if( is_singular('post') ) { $before = b2child_get_collection_posts_list( 'before' ); $after = b2child_get_collection_posts_list( 'after' ); $content = $before ."\n". $content ."\n". $after; } return $content; } add_filter('the_content', 'b2child_display_collection_posts' );
style.css文件代码
.collection-before { border-bottom: 1px solid #ddd; } .entry-content > .collection-after { border-top: 1px solid #ddd; padding-top: 1.5em; margin-bottom: 0; } .collection-posts-ul { background: #f5f5f5; padding: 10px 0; border-radius: 2px; max-height: 290px; overflow-y: hidden; } .collection-posts-ul:hover { overflow-y: scroll; } .entry-content .collection-posts-ul a { color: #444; } .entry-content .collection-posts-ul a:hover { color: #ff3657; }
相关文章请点击文末标签阅读!
冒昧打扰下,想请教下贵站的导航链接[https://www.qitabbs.com/links]是否有制作教程,b2主题,由于无法私信,在此找了一篇文章进行评论
这个是B2主题自带的,如果是B2主题,在后台可设置
后台没找到那功能,您发的链接,跟着做了,有报错 Fatal error: Uncaught Error: Call to undefined function lmy_get_option() in wp-
B2主题是自带这个功能的,主题版本是否最新版,查看此处图片-https://pic.imgdb.cn/item/642436a4a682492fccc2165e.jpg
请教下,links那里要怎么做,我在页面里面添加links,模板用【网址导航首页】,直接访问提示错误,并未显示其他内容
如果不是B2主题,则参考这篇:https://www.s9h.cn/20768.html