Hongmu Notes
Home Program Notes Modification of typecho paging style
Program Notes Typecho

Modification of typecho paging style

Modification of typecho paging style

Sir, times have changed! Typecho is currently the most perfect solution, because Baidu can only see the code of fixed thinking.
The actual generated html code is so clean that it is breathtaking

Complete customization, including adding class to the li element, adding class to the a element, adding class to the previous page and next page, and removing the li tags that come with typecho to represent more. I can even add some text to the content inside.

Pagination code

Without further ado, here’s the source code:

<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>

The main way is to use regular modification to change it once and for all directly from the generated content. You don't need to add and adjust the js one by one, freeing your imagination.

Commonly used regular rules

Here are some regular wildcards:

Commonly used metacharacters

Code Description
. matches any character except newline characters
w matches letters or numbers or underscores
s matches any whitespace character
d matches numbers
b matches the beginning or end of a word
^ matches the beginning of a string
$ matches the end of the string

Common qualifiers

Code/Syntax Description

  • Repeat zero or more times
  • Repeat one or more times
    ? Repeat zero or one time

{n} Repeat n times
{n,} repeated n or more times
{n,m} repeated n to m times

Commonly used antonyms

代码/语法    说明
W    匹配任意不是字母,数字,下划线,汉字的字符
S    匹配任意不是空白符的字符
D    匹配任意非数字的字符
B    匹配不是单词开头或结束的位置
[^x]    匹配除了x以外的任意字符
[^aeiou]    匹配除了aeiou这几个字母以外的任意字符

Common pattern modifiers

代码/语法    说明
i    表示在进行匹配的时候不区分大小写
m    多行识别.即将字符串视为多行,不管是那行都能匹配
s    将字符串视为单行,转义回车换行符作为普通字符
g    表示全局匹配
x    将模式中的空白忽略
A    强制从目标字符串开头匹配
D    强制尾部无任何内容.若使用$限制结尾字符,则不允许结尾有换行
U    禁止贪婪匹配,只匹配最近的一个字符串(不重复匹配)
e    配合PHP函数preg_replace()使用,可以把匹配来的字符串当作正则表达式执行

Explanation of paging output code

To understand why, you first need to understand what the code $this->pageNav() does. For details, you can go to Baidu. Many people use this for customization. Here I will give my commonly used explanation:

page翻页
wrapTag 外层包裹标签名, 默认ol
wrapClass 外层包裹类名
itemTag 内层标签名, 默认li
textTag 直接输出文字的标签名
currentClass 当前聚焦类名
prevClass 上一页类名
nextClass 下一页类名

It's basically ok. As long as you have enough understanding, it should be easy to find out how to customize it from the source code.

微信赞赏

WeChat

支付宝赞赏

Alipay

✍️ Author: Hong Mu

webmaster · Thanks for reading, stay tuned for more exciting content

Author homepage View home page →

Related articles

Resource website typecho001 template

Resource website typecho001 template Program Notes Typecho

typecho001 template template please do not modify the folder name of this template. The folder name is: typecho001 1.4 Fix the js output problem on the article page 1.3 Fix the error prompt when the plug-in is not installed Optimize the list page code output 1.2 Fix the comment function and add a custom homepage title 1.1 Fix the comment reply asymmetry function Add a separate title setting function on the homepage Add the website favicon.ico icon Add one...
👁 198
Typecho article page comment style modification

Typecho article page comment style modification Program Notes Typecho

When you need to use typecho for template development, the default comment style is ugly. Therefore, comments need to be re-output or styled. The default comment template file path is: comments.php Mainly used related variables<?php $comments->gravatar('40', ''); ?> //Avatar has two parameters, size,...
👁 388
Typecho's API for adding, deleting, modifying and querying databases

Typecho's API for adding, deleting, modifying and querying databases Program Notes Typecho

Typecho database provides a very easy-to-use API, which is not much different from the native SQL writing method. At the same time, it also handles common SQL security issues, such as SQL injection. From a practical perspective, this article introduces common scenarios for typecho to operate databases and related API usage. Table creation and deletion During the development process of Typecho plug-in, you often need to create your own table. Typecho_… mentioned above
👁 552
Summary of methods for calling popular comment articles and calling latest articles in Typecho

Summary of methods for calling popular comment articles and calling latest articles in Typecho Program Notes Typecho

Typecho articles call the Typecho program. When designing a theme, the sidebar sometimes needs to call popular articles or the latest articles. We can call it directly through the script at the specified location. In this article, we will organize this method of calling articles, which can be directly called and used in templates where needed in the future. In fact, designing a theme is just that. After the static template is completed, it is called directly. The latest article calls <?php $t…
👁 295
Typecho calls the list of classified articles

Typecho calls the list of classified articles Program Notes Typecho

The number after pageSize represents the number of called articles; the number after mid represents the called category ID; Tip: The method to obtain the Typecho category ID is to move the mouse over a certain category name. The number after mid= displayed in the browser status bar is the category ID. Edit the current typecho theme template and add the following code where you want to call a category. Method 1: widget...
👁 360
TypechoWidget

TypechoWidget Program Notes Typecho

Through Typecho's Widget_Options, you can easily obtain Typecho's system information, or easily obtain related configurations, resource paths, etc. Commonly used Widget_Options functions and usage are listed here for your convenience. Obtain path information through Widget_Options and obtain built-in URL. Through this type of API, you can obtain some TE built-in features...
👁 193

Recommended reading

PHP ob function record

PHP ob function record Language Notes PHP

Usage of the following three functions ob_get_contents(); ob_end_clean(); ob_start(); You can use these functions to buffer local files and execute local script code. Use ob_start() to save the output code into the buffer, and the page will not be displayed; then use ob_get_contents to get the data in the buffer. o…
👁 141
PHP preg

PHP preg Language Notes PHP

The preg_match_all function is used to perform a global regular expression match. preg_match_all() Syntax int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG…
👁 169
Detailed explanation of PHP ternary operator and if

Detailed explanation of PHP ternary operator and if Language Notes PHP

Ternary operator condition ? Result 1 : Result 2 Explanation: The position in front of the question mark is the condition for judgment. If the condition is met, the result is 1, and if it is not met, the result is 2. This article compares and explains the ternary operator and if...else... in detail. I hope it will be helpful to everyone. Today when I was revising my paper online, I encountered a statement that I couldn’t understand: $if_summary = $row['IF_SUMMARY']=…
👁 189
PHP cast type

PHP cast type Language Notes PHP PHP collection PHP and mysql

Get the data type 1. If you want to check the value and type of an expression, use var_dump(). 2. If you just want to get an easy-to-read type expression for debugging, use gettype(). 3. To check a certain type, do not use gettype(), but use the is_type() function. Converting Strings to Numbers When a string is evaluated as a number, the result is determined according to the following rules...
👁 232