wordpress怎么實現文章分頁?
由于篇幅過長導致頁面加載速度過慢,降低用戶體驗,所以必須要找個方法把長文章進行分頁,搜索了一下,發現有個代碼解決的方法非常好。經過親自使用,確實有效,所以在這里分享出來,感興趣的你可不要錯過了哈
最近發現 有不少文章配上圖片,寫得比較長。這樣會導致頁面加載速度過慢,不利于用戶體驗。尤其是新添加的 wordpress主題 頁面,雖然文字不多,可是每一款wordpress主題都要配上個小圖片,才能讓讀者有個大概的了解。從而決定是否要進行演示。那么將近三十款wordpress主題加在一起,頁面就非常的長。所以必須要找個方法把長文章進行分頁。?
在谷歌上搜索了一下,發現有個代碼解決的方法非常好。經過親自使用,確實有效,所以在這里分享出來。?
一、添加分頁按鈕?
如果你不怕麻煩的話,可以在寫文章的時候,切換到HTML模式,插入下面這行代碼,就不需要添加這個分頁按鈕了。?
代碼如下:
<p><!--nextpage--></p>
其實還是在編輯器上添加個分頁按鈕省事多了。以前也看到過通過修改代碼來實在這個功能,不過我忘了。因為我一直用 wordpress編輯器增強插件:TinyMCE Advanced 。這個按鈕早就有了,這里也不多說了。?
2012-06-17補充:給 WordPress 3.4 文本編輯器添加分頁按鈕?
由于我的 “非誠勿擾女嘉賓資料” fc.guansoft.com 網站也用了這篇文章中介紹的長文章分頁代碼。但那個站沒有安裝 TinyMCE Advanced 插件。所以還是上網找了個比較簡單的方法在wordpress編輯器中添加這個分頁按鈕。方法如下:?
找到 /wp-includes/class-wp-editor.php 文件。查找 ‘wp_more’, 標簽:(在366行處)?
代碼如下:
$mce_buttons?=?apply_filters('mce_buttons',?array('bold',?'italic',?'strikethrough',?'|',?'bullist',?'numlist',?'blockquote',?'|',?'justifyleft',?'justifycenter',?'justifyright',?'|',?'link',?'unlink',?<span><strong><span>'wp_more',</span></strong></span>?'|',?'spellchecker',?'fullscreen',?'wp_adv'?),?$editor_id);
在 ‘wp_more’ 后添加 ‘wp_page’, (含單引號和逗號)。修改后代碼如下:?
代碼如下:
$mce_buttons?=?apply_filters('mce_buttons',?array('bold',?'italic',?'strikethrough',?'|',?'bullist',?'numlist',?'blockquote',?'|',?'justifyleft',?'justifycenter',?'justifyright',?'|',?'link',?'unlink',?<span><strong><span>'wp_more','wp_page',</span></strong></span>?'|',?'spellchecker',?'fullscreen',?'wp_adv'?),?$editor_id);
此時,你就可以在后臺寫文章及編輯文章頁面的文本編輯器上看到一個跟 more 標簽按鈕相似的圖標。?
同樣,在代碼編輯器也會相應出現一個 nextpage 按鈕。?
二、添加分頁功能?
wordpress其實自帶分頁功能的函數,只是沒有被調用。所以我們在編輯文章的時候,明明插入了分頁符,卻看不到什么變化。要怎么樣才能讓調用這個函數呢?方法很簡單,在主題模板文件 single.php 中找到類似下面這行代碼。?
代碼如下:
<?php the_content(); ?>
在這行代碼后面添加如下所示的代碼,即可實現簡單的分頁功能。?
代碼如下:
<?php wp_link_pages(); ?>
三、美化分頁效果?
雖然經過上面兩步,已經可以實現長文章的分頁功能了。但是不是那么好看,下面我們就把它美化一下,讓分頁效果更完美。?
首先,把上一步的分頁功能代碼 替換為以下代碼。?
代碼如下:
<?php wp_link_pages(array('before' =>?'<div>分頁閱讀:',?'after'?=>?'',?'next_or_number'?=>?'next',?'previouspagelink'?=>?'上一頁',?'nextpagelink'?=>?""));??>?<?php wp_link_pages(array('before' =>?'',?'after'?=>?'',?'next_or_number'?=>?'number',?'link_before'?=>'<span>',?'link_after'=>'</span>'));??>?<?php wp_link_pages(array('before' =>?'',?'after'?=>?'</div>',?'next_or_number'?=>?'next',?'previouspagelink'?=>?'',?'nextpagelink'?=>?"下一頁"));??>
接著,再對CSS樣式進行美化。?
直接把下面這些代碼,放到主題文件 style.css 最后面。?
代碼如下:
/**頁面分頁**/? .fenye{text-align:center;margin:0px?auto?10px;font-weight:bold}? .fenye?span{background-color:#DDDDDD;color:#fff;font-weight:?bold;margin:0px?1px;padding:1px?6px;display:inline-block;text-decoration:none;border:1px?solid?#e0e0e0;}? .fenye?a{text-decoration:none;}? .fenye?a?span{background-color:#F6F6E8;font-weight:?normal;color:?#000;text-decoration:?none;}? .fenye?a:hover?span{background-color:#DDDDDD;color:?#fff;}
最后顯示效果如下圖所示:?
四、解決文章分頁后標題重復對SEO的影響?
由于長文章分頁后,這幾個頁面的標題是一樣的。會不會對SEO帶來不利的影響,我也不清楚。還是避免一下吧!可以通過給 wordpress 文章分頁添加頁碼,解決標題重復的問題。我們可以把改成如下所示的效果:?
簡單實用的wordpress長文章分頁代碼 —冠朔wordpress插件?
簡單實用的wordpress長文章分頁代碼-第2頁 — 冠朔wordpress插件?
簡單實用的wordpress長文章分頁代碼-第3頁 — 冠朔wordpress插件?
在主題模板文件 header.php 找到類似
代碼如下:
<?php if ( is_single() ) { ?><title> <?php echo trim(wp_title('',0)); ?><?php if (get_query_var('page')) { echo '-第'; echo get_query_var('page'); echo '頁';}?>?—?<?php bloginfo('name'); ?> </title><?php } ?>
五、避免Feed被分頁?
實現分頁功能后,會導致Feed頁面的文章被分頁,一般只顯示第一頁的內容。?
解決方法:打開 wp-includes 目錄下的 query.php 文件,找到下面這行代碼(大概在3578行)?
代碼如下:
if?(?strpos(?$content,''?)?)?{
把它修改為下面這行代碼。?
代碼如下:
if?(?strpos(?$content,?'<!--nextpage-->'?)?&&?(!is_feed())?)?{
更多WordPress相關技術文章,請訪問WordPress教程欄目:https://www.php.cn/cms/wordpress/