红穆笔记
首頁 程序筆記 typecho分頁樣式的修改
程序筆記 Typecho

typecho分頁樣式的修改

typecho分页样式的修改

大人,時代變了!目前typecho最完美的解決方案了,因爲百度只能看到固定思維的代碼。
實際生成的html代碼,乾淨到讓人窒息

完全的自定義,包括給li元素加上class,給a元素加上class,給上一頁下一頁加上class,去除typecho自帶用於表示更多的li標籤。甚至裏面的內容我也能添加一些文字。

分頁代碼

廢話不多說,上源碼:

<nav class="my-5">
    <?php
      ob_start(); 
      $this->pageNav('&laquo;','&raquo;', 1, '', array('wrapTag' => 'ul', 'wrapClass' => 'pagination pagination-rounded mb-0 justify-content-center', 'itemTag' => 'li', 'textTag' => 'span', 'currentClass' => 'active', 'prevClass' => 'prev', 'nextClass' => 'next'));
      $content = ob_get_contents();
      ob_end_clean();
      $content = preg_replace("/<li><span>(.*?)<\/span><\/li>/sm", '', $content);
      $content = preg_replace("/<li [class=\"active\"]+>(.*?)<\/li>/sm", '<li class="page-item active">$1</li>', $content);
      $content = preg_replace("/<li [class=\"prev\"]+>(.*?)<\/li>/sm", '<li class="page-item">$1</li>', $content);
      $content = preg_replace("/<li [class=\"next\"]+>(.*?)<\/li>/sm", '<li class="page-item">$1</li>', $content);
      $content = preg_replace("/<li>(.*?)<\/li>/sm", '<li class="page-item">$1</li>', $content);
      $content = preg_replace("/<a href=\"(.*?)\">(.*?)<\/a>/sm", '<a class="page-link" href="$1">$2</a>', $content);
      echo $content;
     ?>
  </nav>

主要方式就是利用正則修改,一勞永逸,直接從生成的內容上改變,不用再js一個個的匹配添加調整了,釋放你的想象力。

常用正則

這裏放一些正則的一些通配符:

常用元字符

代碼 說明
. 匹配除換行符以外的任意字符
w 匹配字母或數字或下劃線
s 匹配任意的空白符
d 匹配數字
b 匹配單詞的開始或結束
^ 匹配字符串的開始
$ 匹配字符串的結束

常用限定符

代碼/語法 說明

  • 重複零次或更多次
  • 重複一次或更多次
    ? 重複零次或一次

{n} 重複n次
{n,} 重複n次或更多次
{n,m} 重複n到m次

常用反義詞

代碼/語法    說明
W    匹配任意不是字母,數字,下劃線,漢字的字符
S    匹配任意不是空白符的字符
D    匹配任意非數字的字符
B    匹配不是單詞開頭或結束的位置
[^x]    匹配除了x以外的任意字符
[^aeiou]    匹配除了aeiou這幾個字母以外的任意字符

常用模式修正符

代碼/語法    說明
i    表示在進行匹配的時候不區分大小寫
m    多行識別.即將字符串視爲多行,不管是那行都能匹配
s    將字符串視爲單行,轉義回車換行符作爲普通字符
g    表示全局匹配
x    將模式中的空白忽略
A    強制從目標字符串開頭匹配
D    強制尾部無任何內容.若使用$限制結尾字符,則不允許結尾有換行
U    禁止貪婪匹配,只匹配最近的一個字符串(不重複匹配)
e    配合PHP函數preg_replace()使用,可以把匹配來的字符串當作正則表達式執行

分頁輸出代碼解釋

要想理解爲什麼,首先你要了解$this->pageNav()這段代碼做了什麼,具體你可以百度,很多人自定義都是用的這個,這裏我放一下自己常用的解釋:

page翻頁
wrapTag 外層包裹標籤名, 默認ol
wrapClass 外層包裹類名
itemTag 內層標籤名, 默認li
textTag 直接輸出文字的標籤名
currentClass 當前聚焦類名
prevClass 上一頁類名
nextClass 下一頁類名

基本就ok了,只要領悟能力夠應該很容易就從源碼中發現怎麼自定義了。

微信赞赏

微信

支付宝赞赏

支付寶

✍️ 作者: 紅穆

網站管理員 · 感謝閱讀,更多精彩內容敬請關注

作者主頁 查看主頁 →

相關文章

资源网站typecho001模板

資源網站typecho001模板 程序筆記 Typecho

typecho001模板板本請勿修改本模板文件夾名稱 文件夾名稱爲:typecho001 1.4修復文章頁面js輸出問題1.3修復未安裝插件時的報錯提示優化列表頁代碼輸出1.2修復評論功能增加自定義首頁標題1.1修復評論回覆不對稱功能添加首頁單獨的標題設置功能增加網站favicon.ico圖標增加一…
👁 198
typecho文章页评论样式修改

typecho文章頁評論樣式修改 程序筆記 Typecho

需求使用 typecho 進行模板開發的時候,默認評論樣式很難看。因此需要評論需要重新輸出或進行樣式設定。默認的評論模板文件路徑是:comments.php主要使用的相關變量&lt;?php $comments-&gt;gravatar('40', ''); ?&gt; //頭像,有兩個參數,大小、…
👁 387
Typecho 对数据库的增删改查操作方法 API

Typecho 對數據庫的增刪改查操作方法 API 程序筆記 Typecho

Typecho數據庫提供了非常易用的api,和原生SQL寫法沒有太大的差別,同時也很好地處理了SQL常見的安全問題,如sql注入。本文從實用角度出發,介紹了typecho操作數據庫的常用場景以及相關api用法。表創建和刪除在Typecho插件開發過程中,往往需要創建自己的表。上文提到Typecho_…
👁 551
Typecho调用热门评论文章和调用最新文章的方法总结

Typecho調用熱門評論文章和調用最新文章的方法總結 程序筆記 Typecho

Typecho文章調用Typecho程序在設計主題的時候,側欄有些時候需要調用熱評文章或者最新文章。我們可以在指定的位置通過腳本直接調用。在這篇文章整理這個調用文章的方法,以後在有需要的模板中可以直接調用使用。其實設計主題就那麼回事,靜態模板搞定後,就是直接調用。最新文章調用 &lt;?php $t…
👁 295
Typecho 调用分类文章列表

Typecho 調用分類文章列表 程序筆記 Typecho

其中pageSize後面的數字表示調用文章的數量;mid後面的數字表示調用的分類ID;提示:Typecho分類目錄ID的獲取方法是把鼠標移到某分類名稱上面,在瀏覽器狀態欄顯示的mid=後面的數字便是該分類目錄ID編輯當前typecho主題模板,在要調用某分類目錄的位置添加以下代碼方法一:widget…
👁 360
Typecho的Widget

Typecho的Widget 程序筆記 Typecho

通過Typecho的Widget_Options,可以方便地獲取Typecho的系統信息,或者方便地獲取相關配置、資源路徑等。這裏列出常用的Widget_Options函數和用法,方便各位筒子方便查閱。通過Widget_Options獲取路徑信息獲取內置URL通過這類api,可以獲取TE內置的一些特…
👁 193

推薦閱讀

PHP ob函数记录

PHP ob函數記錄 語言筆記 PHP

下面3個函數的用法 ob_get_contents(); ob_end_clean(); ob_start(); 可以藉助這幾個函數實現緩衝本地文件,以及執行本地腳本代碼。 使用ob_start()把輸出的代碼存到緩衝區,頁面不會顯示出來; 然後用ob_get_contents得到緩衝區的數據。 o…
👁 141
PHP preg

PHP preg 語言筆記 PHP

preg_match_all 函數用於執行一個全局正則表達式匹配。preg_match_all() 語法int preg_match_all ( string $pattern , string $subject [, array &amp;$matches [, int $flags = PREG…
👁 169
PHP 三元运算符与if的详解

PHP 三元運算符與if的詳解 語言筆記 PHP

三元運算符語條件 ? 結果1 : 結果2 說明:問號前面的位置是判斷的條件,如果滿足條件時結果1,不滿足時結果2。本文對三元運算符和if...else...進行對比詳解,希望對大家有所幫助。今天在改論文在線的時候遇到了一個語句看不懂:$if_summary = $row['IF_SUMMARY']=…
👁 189
PHP强制转换类型

PHP強制轉換類型 語言筆記 PHP PHP採集 PHP與mysql

獲取數據類型1.如果想查看某個表達式的值和類型,用var_dump()。 2.如果只是想得到一個易讀懂的類型的表達方式用於調試,用 gettype()。3.要查看某個類型,不要用 gettype(),而用is_type() 函數。字符串轉換爲數值當一個字符串被當作數字來求值時,根據以下規則來決定結果…
👁 232