Npcink Blog
切换菜单

PHP 过滤器

更新于:2023年4月3日

本页目录45 节

pf_page_suffix

基础信息

名称:pf_page_suffix
类型:过滤器(filter)
作用:主题页面、滚动图的钩子均与“页面后缀”有关。如:404 页面的后缀为_404,文章内容页的后缀为_single(post)等。这些后缀在显示页面主列以及显示顶部滚动图时,均会造成影响。因此,修改此过滤器需要非常谨慎。修改后,可能出现某个页面内容不是预期效果的问题。

过滤器参数

#类型备注
1String主题自动判定的后缀

其他:

  1. 参数可使用 var_dump(参数); 查看具体内容
  2. 若接收 2 个及以上参数,在添加过滤器时务必跟上过滤器优先级(默认 10)以及参数数量,否则会报错。详见 WordPress 官方 add_filter 用法

使用示例

将 404 页使用搜索页的后缀(将连带修改页面显示的部分内容变成搜索页)

add_filter('pf_page_suffix',function($suffix){
return $suffix == '_404' ? '_search' : $suffix;
});

pf_sidebar_selectors

基础信息

名称:pf_sidebar_selectors
类型:过滤器(filter)
作用:用于定义边栏切换按钮及边栏内容

过滤器参数

#类型备注
1Array边栏按钮

其他:

  1. 参数可使用 var_dump(参数); 查看具体内容
  2. 若接收 2 个及以上参数,在添加过滤器时务必跟上过滤器优先级(默认 10)以及参数数量,否则会报错。详见 WordPress 官方 add_filter 用法

使用示例

仅显示自定义边栏(要显示边栏内容需额外注册名为“my_sidebar”的边栏)

add_filter('pf_sidebar_selectors',function($tobe_filtered){
return [
'my_sidebar' => [
'name' => '我的边栏',
'html' => '<span>❤</span>'
]
];
});

pf_static_nav_logo

基础信息

名称:pf_static_nav_logo
类型:过滤器(filter)
作用:固定在顶部的导航条左侧 LOGO 显示的 HMTL 标签内容

过滤器参数

#类型备注
1Stringimg 标签

其他:

  1. 参数可使用 var_dump(参数); 查看具体内容
  2. 若接收 2 个及以上参数,在添加过滤器时务必跟上过滤器优先级(默认 10)以及参数数量,否则会报错。详见 WordPress 官方 add_filter 用法

使用示例

忽略后台设置的 LOGO 参数,强制更换成自定义文本

add_filter('pf_static_nav_logo',function(){
return "自定义HTML内容";
});

pf_header_image

基础信息

名称:pf_header_image
类型:过滤器(filter)
作用:主题页面顶部的图片

过滤器参数

#类型备注
1Stringimg 标签

其他:

  1. 参数可使用 var_dump(参数); 查看具体内容
  2. 若接收 2 个及以上参数,在添加过滤器时务必跟上过滤器优先级(默认 10)以及参数数量,否则会报错。详见 WordPress 官方 add_filter 用法

使用示例

忽略后台设置的顶部图片参数,强制更换成自定义文本

add_filter('pf_header_image',function(){
return "自定义HTML内容";
});

pf_the_modal_title

基础信息

名称:pf_the_modal_title
类型:过滤器(filter)
作用:输出(首页)模块标题 HTML

过滤器参数

#类型备注
1String组装后的 HTML
2String原始标题字符串
3Int/Array类型标记

类型标记可能的值:

值备注
字符串Tag 名称
包含数字的数组该数组中的每个值均是文章分类 ID
>0 的正整数文章分类 ID
0默认(未定义)
-1“最新文章”标题
-2“点赞最多(大家喜欢)”标题
-3“评论最多(热门讨论)”标题
-4“阅读量最多”标题
-5“随机文章”标题
-6“搜索结果”标题
-7“排行榜”标题

其他:

  1. 参数可使用 var_dump(参数); 查看具体内容
  2. 若接收 2 个及以上参数,在添加过滤器时务必跟上过滤器优先级(默认 10)以及参数数量,否则会报错。详见 WordPress 官方 add_filter 用法

使用示例

例:根据标记组装自定义标题

add_filter("pf_the_modal_title",function($tobe_filtered_html, $original_text, $remark){
if($remark == -1){
return "<div class='custom-modal-title'>我的最新文章</div>";
} else {
return $tobe_filtered_html;
}
},10,3);

pf_show_post_function

基础信息

名称:pf_show_post_function
类型:过滤器(filter)
作用:用于修改显示文章卡片的方法(名)

过滤器参数

#类型备注
1String主题默认显示方法名
2Array准备显示的文章 ID
3Int/Array类型标记

类型标记可能的值:

值备注
字符串Tag 名称
包含数字的数组该数组中的每个值均是文章分类 ID
>0 的正整数文章分类 ID
0默认(未定义)
-1“最新文章”标题
-2“点赞最多(大家喜欢)”标题
-3“评论最多(热门讨论)”标题
-4“阅读量最多”标题
-5“随机文章”标题
-6“搜索结果”标题

其他:

  1. 参数可使用 var_dump(参数); 查看具体内容
  2. 若接收 2 个及以上参数,在添加过滤器时务必跟上过滤器优先级(默认 10)以及参数数量,否则会报错。详见 WordPress 官方 add_filter 用法

使用示例

文章分类 ID 是 8 的,使用自定义显示方式显示。其它仍然使用主题原始的卡片展示方式:

//替换输出方法
add_filter('pf_show_post_function',function($tobe_filtered,$ids,$remark){
return $remark == 10 ? "my_custom_show_post_func" : $tobe_filtered;
},10,3);
//自定义输出方法
function my_custom_show_post_func($post_id=0,$type_id=0, $sn='') {
$html = "<a href='".get_permalink($post_id)."'>".get_the_title($post_id)."</a>";
echo $html;
}

pf_recommend_selectors

基础信息

名称:pf_recommend_selectors
类型:过滤器(filter)
作用:文章推荐模块(点赞最多、评论最多、阅读最多)的 Tab 选择器内容

过滤器参数

#类型备注
1Array选择器 HTML 名称

其他:

  1. 参数可使用 var_dump(参数); 查看具体内容
  2. 若接收 2 个及以上参数,在添加过滤器时务必跟上过滤器优先级(默认 10)以及参数数量,否则会报错。详见 WordPress 官方 add_filter 用法

使用示例

除了点赞最多、评论最多、阅读最多以外,增加一个自定义的 Tab:

add_filter('pf_recommend_selectors',function($tobe_filtered){
$tobe_filtered[] = "自定义<b>Tab</b>";
return $tobe_filtered;
});

注:真实使用场景除了增加选择器按钮外,还应该增加 Panel 内容,详见pf_recommend_panels动作钩子

pf_frontpage_modal_query_args

基础信息

名称:pf_frontpage_modal_query_args
类型:过滤器(filter)
作用:首页模块数据查询参数过滤

过滤器参数

#类型备注
1Array原始参数
2Int/Array类型标记

类型标记可能的值:

值备注
字符串Tag 名称
包含数字的数组该数组中的每个值均是文章分类 ID
>0 的正整数文章分类 ID
0默认(未定义)
-1“最新文章”
-2“点赞最多(大家喜欢)”
-3“评论最多(热门讨论)”
-4“阅读量最多”
-5“随机文章”

其他:

  1. 参数可使用 var_dump(参数); 查看具体内容
  2. 若接收 2 个及以上参数,在添加过滤器时务必跟上过滤器优先级(默认 10)以及参数数量,否则会报错。详见 WordPress 官方 add_filter 用法

使用示例

例:“大家喜欢”模块在首页设置成 12 篇文章

add_filter("pf_frontpage_modal_query_args",function($args, $type_id){
// 类型标记为-2是“点赞最多(大家喜欢)”
if ($type_id == -2) {
//修改查询数量(参见WP_Query的参数说明)
$args['posts_per_page'] = 12;
}
return $args;
},10,2);

pf_frontpage_modal_query_result_ids

基础信息

名称:pf_frontpage_modal_query_result_ids
类型:过滤器(filter)
作用:首页模块数据查询结果过滤

过滤器参数

#类型备注
1Array查询到的文章 ID
2Int/Array类型标记

类型标记可能的值:

值备注
字符串Tag 名称
包含数字的数组该数组中的每个值均是文章分类 ID
>0 的正整数文章分类 ID
0默认(未定义)
-1“最新文章”
-2“点赞最多(大家喜欢)”
-3“评论最多(热门讨论)”
-4“阅读量最多”
-5“随机文章”

其他:

  1. 参数可使用 var_dump(参数); 查看具体内容
  2. 若接收 2 个及以上参数,在添加过滤器时务必跟上过滤器优先级(默认 10)以及参数数量,否则会报错。详见 WordPress 官方 add_filter 用法

使用示例

打乱首页最新文章的 id,让显示顺序也随机

add_filter('pf_frontpage_modal_query_result_ids',function($ids, $type_id){
// 类型标记为-1是“最新文章”
if ($type_id == -1) {
shuffle($ids);
}
return $ids;
},10,2);

pf_the_modal_link

基础信息

名称:pf_the_modal_link
类型:过滤器(filter)
作用:输出(首页)模块“阅读更多”链接 HTML

过滤器参数

#类型备注
1String组装后的 HTML
2Int/Array类型标记

类型标记可能的值:

值备注
字符串Tag 名称
包含数字的数组该数组中的每个值均是文章分类 ID
>0 的正整数文章分类 ID
0默认(未定义)
-1“最新文章”标题
-2“点赞最多(大家喜欢)”标题
-3“评论最多(热门讨论)”标题
-4“阅读量最多”标题
-5“随机文章”标题
-6“搜索结果”标题

其他:

  1. 参数可使用 var_dump(参数); 查看具体内容
  2. 若接收 2 个及以上参数,在添加过滤器时务必跟上过滤器优先级(默认 10)以及参数数量,否则会报错。详见 WordPress 官方 add_filter 用法

pf_slider_type

基础信息

名称:pf_slider_type
类型:过滤器(filter)
作用:对 slider 输出的类型进行过滤,默认有 card-flip 和 landscape 两种

过滤器参数

#类型备注
1String原始类型

其他:

  1. 参数可使用 var_dump(参数); 查看具体内容
  2. 若接收 2 个及以上参数,在添加过滤器时务必跟上过滤器优先级(默认 10)以及参数数量,否则会报错。详见 WordPress 官方 add_filter 用法

pf_slider_data

基础信息

名称:pf_slider_data
类型:过滤器(filter)
作用:对 slider 输出的数据进行过滤

过滤器参数

#类型备注
1Array默认数据

其他:

  1. 参数可使用 var_dump(参数); 查看具体内容
  2. 若接收 2 个及以上参数,在添加过滤器时务必跟上过滤器优先级(默认 10)以及参数数量,否则会报错。详见 WordPress 官方 add_filter 用法