1. 程式人生 > >wordpress 設定站點主頁顯示文章標題及摘要最新方法

wordpress 設定站點主頁顯示文章標題及摘要最新方法

站點shares.club建好後,檢視主頁時,發現雖然設定了只展示5篇文章以及feed中瀏覽顯示摘要而不是全文,但是主頁還是對每篇文章進行了全文顯示,這樣的體驗非常差,必須把第一篇看完才能瀏覽第二篇。為此,決定一定要改個簡潔的方式來展示主頁。由於本人從未學習過PHP相關的知識,所以雖然可能是幾句話的事,但是對初次接觸的人來說,還是很難,事後事實也如此。曲折經歷如下:

首先在百度上查找了相關方法,得出的結果大多是安裝外掛,或者插入幾段程式碼,而且寫的非常不標準,都是反覆轉摘的文章,有些原文站點甚至已經關閉了,無從考究,而且時間大多已經是5年前的文章,WordPress版本都不知道更新了多少個!只能算是部分正確,也許是我設定不對,但是如果你看到本文了,相信你也已經嘗試了很多方法了!最後還是通過強大的谷歌,直接搜不來前兩篇文章就能解決問題,不得不說,還是谷歌的結果更切題,可惜百度了!

說明:本人使用的WordPress主題是twentysixteen,其它主題應該類似。

新增過濾和文章擷取函式

在主題-編輯-主題檔案-模板函式function.PHP檔案末尾 新增下面的函式:


/**
 * Display the content in short words
 */
function dm_strimwidth($str ,$start , $width ,$trimmarker ){
 $output = preg_replace('/^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$start.'}((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$width.'}).*/s','\1',$str);
 return $output.$trimmarker;
}
/*控制摘要字數*/
function new_excerpt_length($length) {
return 150;
}
function new_excerpt_more($more) {
	global $post;
	return '<a href="'. get_permalink($post->ID) . '">......閱讀更多</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');

設定content內容的展示方式

在主題-編輯-主題檔案-template-parts-content.php檔案末尾替換下面的內容:

原文:

<div class="entry-content">
		<?php
			/* translators: %s: Name of current post */
			the_content( sprintf(
				__( 'Continue reading %s', 'twentysixteen' ),
				the_title( '<span class="screen-reader-text">', '</span>', false )
			) );

			wp_link_pages( array(
				'before'      => '<div class="page-links"><span class="page-links-title">' . __( 'Pages:', 'twentysixteen' ) . '</span>',
				'after'       => '</div>',
				'link_before' => '<span>',
				'link_after'  => '</span>',
				'pagelink'    => '<span class="screen-reader-text">' . __( 'Page', 'twentysixteen' ) . ' </span>%',
				'separator'   => '<span class="screen-reader-text">, </span>',
			) );
		?>
	</div><!-- .entry-content -->

替換後為:

<div class="entry-content">
		<?php
		if ( is_single() ) :
			/* translators: %s: Name of current post */
			the_content( sprintf(
				__( 'Continue reading %s', 'twentysixteen' ),
				the_title( '<span class="screen-reader-text">', '</span>', false )
			) );

			wp_link_pages( array(
				'before'      => '<div class="page-links"><span class="page-links-title">' . __( 'Pages:', 'twentysixteen' ) . '</span>',
				'after'       => '</div>',
				'link_before' => '<span>',
				'link_after'  => '</span>',
				'pagelink'    => '<span class="screen-reader-text">' . __( 'Page', 'twentysixteen' ) . ' </span>%',
				'separator'   => '<span class="screen-reader-text">, </span>',
			) );
			else :

			/* translators: %s: Name of current post */
			the_excerpt( sprintf(
				__( 'Continue reading %s', 'twentysixteen' ),
				the_title( '<span class="screen-reader-text">', '</span>', false )
			) );

			wp_link_pages( array(
				'before'      => '<div class="page-links"><span class="page-links-title">' . __( 'Pages:', 'twentysixteen' ) . '</span>',
				'after'       => '</div>',
				'link_before' => '<span>',
				'link_after'  => '</span>',
				'pagelink'    => '<span class="screen-reader-text">' . __( 'Page', 'twentysixteen' ) . ' </span>%',
				'separator'   => '<span class="screen-reader-text">, </span>',
			) );
			endif;
		?>
	</div><!-- .entry-content -->

替換後,更新,再次檢視站點應該就會比百度上找的顯示好看多了吧,雖然還有些對漢字的相容不好,如顯示的字數也許對英文可以,但是漢字就顯得少了一點,後面再慢慢調唄!

那些坑

1,填寫摘要無效,不顯示

根據網上提供的方法,補充了文章的在編輯時可選填的摘要,可是起初設定的方法雖然顯示了“閱讀更多”的按鈕,但是也沒有按照摘要內容進行顯示或者要不就是正文仍然在顯示,二者出現了重複!一般寫一點文章,誰還專門去寫摘要呀,肯定直接擷取原文更方便啦!

參考文章:http://www.matrudev.com/post/twenty-sixteen-summary-excerpt/

 

本文同步釋出在:https://ideashare.club/,歡迎訪問!

--------------------- 
作者:我在地球村--做個有意思的人 
來源:CSDN 
版權宣告:本文為博主原創文章,轉載請附上博文連結!