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
版權宣告:本文為博主原創文章,轉載請附上博文連結!