国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
WordPress分頁偽靜態(tài)加html后綴,wordpress
首頁 后端開發(fā) php教程 WordPress分頁偽靜態(tài)加html后綴,wordpress_PHP教程

WordPress分頁偽靜態(tài)加html后綴,wordpress_PHP教程

Jul 12, 2016 am 08:50 AM
wordpress 偽靜態(tài)

WordPress分頁偽靜態(tài)加html后綴,wordpress

問題

當文章有分頁的時候,WordPress生成的永久鏈接是page.html/2的形式,前面一段是文章的$link,后面的數(shù)字代表分頁$number。那么問題來了,挖掘……不對,從邏輯上講這到底是個html文件還是一個目錄呢?

難看

在.html這個靜態(tài)文件后面加上一個/和數(shù)字簡直令人摸不著頭腦,這還只是其次,重要的是,我發(fā)現(xiàn)搜索引擎根本不收錄這樣奇怪的鏈接,這個真是無法接受,我寫的東西首尾都很重要,不能因為分個頁就被忽視了。

不收錄

拿這篇文章來看,搜索文章第一頁的內(nèi)容,谷歌收錄了:

搜索文章第二頁和第三頁的內(nèi)容,根本沒有收錄:

解決方案

于是我決定DIY WordPress的鏈接生成與解析規(guī)則。

思路

利用filter wp_link_pages_link 將分頁鏈接/123456重寫為page-[123456].html。

利用WordPress或者服務器的RewriteRule將page-[123456].html還原為/123456

添加鉤子redirect_canonical,防止WordPress從page-[123456].html到/123456的強行跳轉(zhuǎn)。

生成分頁html后綴鏈接

給WordPress主題加入:

class Rewrite_Inner_Page_Links
{
  var $separator;
  var $post_rule;
 
  function __construct()
  {
    $this->separator = '/page-';
    // (.+?)/([^/]+).html(/[0-9]+)?/?
    $this->post_rule = '(.+?)/([^/]+)(' . $this->separator . '([0-9]+))+.html/?$';
    if (!is_admin() || defined('DOING_AJAX')) :
      add_filter('wp_link_pages_link', array($this, 'inner_page_link_format'), 10, 2); // for inner pages
      add_filter('redirect_canonical', array($this, 'cancel_redirect_for_paged_posts'), 10, 2);
    endif;
    if (is_admin()) :
      add_filter('rewrite_rules_array', array($this, 'pagelink_rewrite_rules'));
    endif;
  }
 
  /**
   * 修改post分頁鏈接的格式
   * @param string $link
   * @param int $number
   * @return string
   */
  function inner_page_link_format($link, $number)
  {
    if ($number > 1)
    {
      if (preg_match('%<a href=".*\.html/\d*"%', $link))
      {
        $link = preg_replace("%(\.html)/(\d*)%", $this->separator . "$2$1", $link);
      }
    }
    return $link;
  }
 
  /**
   * 為新的鏈接格式增加重定向規(guī)則,移除原始分頁鏈接的重定向規(guī)則,防止重復收錄
   *
   * 訪問原始鏈接將返回404
   * @param array $rules
   * @return array
   */
  function pagelink_rewrite_rules($rules)
  {
    $new_rule[$this->post_rule] = 'index.php&#63;name=$matches[2]&page=$matches[4]';
    return $new_rule + $rules;
  }
 
  /**
   * 禁止WordPress將頁面分頁鏈接跳轉(zhuǎn)到原來的格式
   * @param string $redirect_url
   * @param string $requested_url
   * @return bool
   */
  function cancel_redirect_for_paged_posts($redirect_url, $requested_url)
  {
    global $wp_query;
    if (is_single() && $wp_query->get('page') > 1)
    {
      return false;
    }
    return true;
  }
}
 
new Rewrite_Inner_Page_Links();

這樣就得到了將類似http://www.domain.com/program/tokyodaigaku.html/2/ 的分頁鏈接轉(zhuǎn)化為形如 http://www.domain.com/program/tokyodaigaku/page-2.html 的鏈接。

注意,我的偽靜態(tài)規(guī)則是/%category%/%postname%.html,如果你的規(guī)則不同,請自行修改代碼或者偽靜態(tài)規(guī)則。

重寫URL規(guī)則

如果不重寫規(guī)則的話,WordPress是不認識這個鏈接的,它以為有個目錄叫tokyodaigaku,里面有篇文章叫page-2.html,結果會給出一個無情的404錯誤:

利用服務器的重寫規(guī)則

如果是SAE的話,在config.yaml的第一行加入:

復制代碼 代碼如下:- rewrite: if ( !is_dir() && path ~ "(.+?)/([^/]+)(/page-([0-9]+))+.html/?$") goto "index.php?name=$2&page=$4"

如果不是的話,可以利用WordPress自帶的rewrite_rules:

登陸后臺——設置——固定鏈接:

什么也不用填,直接保存更改即可。代碼會自動在數(shù)據(jù)庫中硬性加入一條規(guī)則:

復制代碼 代碼如下:"(.+?)/([^/]+)(/page-([0-9]+))+.html/?$" => "index.php?name=$matches[2]&page=$matches[4]"

最終效果

無論是用http://www.domain.com/program/tokyodaigaku.html/2/ 還是 http://www.domain.com/program/tokyodaigaku/page-2.html,都可以訪問第二頁。

具體效果放在第二頁,順便測試一下分頁后綴效果

好了,基本功能已經(jīng)實現(xiàn)了,小伙伴們是否明白了呢,如有問題,請留言

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1135016.htmlTechArticleWordPress分頁偽靜態(tài)加html后綴,wordpress 問題 當文章有分頁的時候,WordPress生成的永久鏈接是page.html/2的形式,前面一段是文章的$link,后面的...
本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

wordpress文章列表怎么調(diào) wordpress文章列表怎么調(diào) Apr 20, 2025 am 10:48 AM

有四種方法可以調(diào)整 WordPress 文章列表:使用主題選項、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代碼(在 functions.php 文件中添加設置)或直接修改 WordPress 數(shù)據(jù)庫。

為Web開發(fā)者準備的10個最新工具 為Web開發(fā)者準備的10個最新工具 May 07, 2025 pm 04:48 PM

Web開發(fā)設計是一個充滿潛力的職業(yè)領域。然而,這個行業(yè)也面臨著諸多挑戰(zhàn)。隨著越來越多的企業(yè)和品牌轉(zhuǎn)向網(wǎng)絡市場,Web開發(fā)者有機會展示他們的技能并在職業(yè)生涯中取得成功。然而,隨著對Web開發(fā)需求的持續(xù)增長,開發(fā)人員的數(shù)量也在增加,導致競爭日益激烈。但令人振奮的是,如果你具備天賦和意愿,你總能找到新方法來創(chuàng)造獨特的設計和創(chuàng)意。作為一名Web開發(fā)人員,你可能需要不斷尋找新的工具和資源。這些新工具和資源不僅能讓你的工作更加便捷,還能提升工作質(zhì)量,從而幫助你贏得更多的業(yè)務和客戶。Web開發(fā)的趨勢不斷變化,

wordpress怎么導入源碼 wordpress怎么導入源碼 Apr 20, 2025 am 11:24 AM

導入 WordPress 源碼需要以下步驟:創(chuàng)建子主題以進行主題修改。導入源碼,覆蓋子主題中的文件。激活子主題,使其生效。測試更改,確保一切正常。

wordpress主機怎么建站 wordpress主機怎么建站 Apr 20, 2025 am 11:12 AM

要使用 WordPress 主機建站,需要:選擇一個可靠的主機提供商。購買一個域名。設置 WordPress 主機帳戶。選擇一個主題。添加頁面和文章。安裝插件。自定義您的網(wǎng)站。發(fā)布您的網(wǎng)站。

如何在 Yandex 網(wǎng)站管理員工具中添加您的 WordPress 網(wǎng)站 如何在 Yandex 網(wǎng)站管理員工具中添加您的 WordPress 網(wǎng)站 May 12, 2025 pm 09:06 PM

您想將您的網(wǎng)站連接到Yandex網(wǎng)站管理員工具嗎?Google搜索控制臺、Bing和Yandex等網(wǎng)站管理員工具可幫助您優(yōu)化網(wǎng)站、監(jiān)控流量、管理robots.txt、檢查網(wǎng)站錯誤等。在本文中,我們將分享如何在Yandex網(wǎng)站管理員工具中添加您的WordPress網(wǎng)站來監(jiān)控您的搜索引擎流量。什么是Yandex?Yandex是一個位于俄羅斯的流行搜索引擎,類似于Google和Bing。您可以在Yandex中優(yōu)

如何設置、獲取和刪除 WordPress Cookie(像專業(yè)人士一樣) 如何設置、獲取和刪除 WordPress Cookie(像專業(yè)人士一樣) May 12, 2025 pm 08:57 PM

您想了解如何在WordPress網(wǎng)站上使用cookie嗎?Cookie是在用戶瀏覽器中存儲臨時信息的有用工具。您可以使用此信息通過個性化和行為定位來增強用戶體驗。在本終極指南中,我們將向您展示如何像專業(yè)人士一樣設置、獲取和刪除WordPresscookie。注意:這是一個高級教程。它要求您精通HTML、CSS、WordPress網(wǎng)站和PHP。什么是Cookie?Cookie是用戶訪問網(wǎng)站時創(chuàng)建并存儲在用戶瀏覽

如何修復 WordPress 中的 HTTP 圖片上傳錯誤(簡單) 如何修復 WordPress 中的 HTTP 圖片上傳錯誤(簡單) May 12, 2025 pm 09:03 PM

您需要修復WordPress中的HTTP圖片上傳錯誤嗎?當您在WordPress中創(chuàng)建內(nèi)容時,此錯誤可能會特別令人沮喪。當您使用內(nèi)置WordPress媒體庫將圖像或其他文件上傳到CMS時,通常會發(fā)生這種情況。在本文中,我們將向您展示如何輕松修復WordPress中的HTTP圖片上傳錯誤。WordPress媒體上傳過程中出現(xiàn)HTTP錯誤的原因是什么?當您嘗試使用WordPress媒體上傳器將文件上傳到Wo

wordpress賬號怎么注冊 wordpress賬號怎么注冊 Apr 20, 2025 am 11:45 AM

要在 WordPress 上創(chuàng)建賬號,只需訪問其網(wǎng)站,選擇注冊選項,填寫注冊表,并驗證您的電子郵件地址。其他注冊方法包括使用 Google 賬號或 Apple ID。注冊的好處包括創(chuàng)建網(wǎng)站、獲得功能、加入社區(qū)和獲得支持。

See all articles