笔者想给 WordPress 文章添加置顶、密码保护、私密的标记,以便于识别,并有两种方法
- 作为文章标题前缀显示
- 单独显示
作为文章标题前缀显示
我们知道,WordPress 默认会给密码保护的文章、私密的文章添加“密码保护:”和“私密:”的标题前缀
不过对于置顶文章而言,没有默认的标题前缀
如果想要自定义密码保护和私密文章的标题前缀
首先在服务器上找到 WordPress 站点目录,如笔者的是 /www/wwwroot/[站点文件名]
在目录底下找到 wp-content/themes/[WordPress使用的主题名称]/functions.php
在里面添加以下函数,return
语句中 %s
前面的内容都是你的自定义内容
add_filter( 'protected_title_format', 'my_protected_title_format' );
//密码保护文章标题前缀
function my_protected_title_format( $format ) {
return '<span class="protected-tag">密码保护</span>%s';
}
add_filter( 'private_title_format', 'my_private_title_format' );
//私密文章标题前缀
function my_private_title_format( $format ) {
return '<span class="private-tag">私密</span>%s';
}
简单添加一下 CSS 样式
/*置顶标记*/
.sticky-tag{
color:#FFF;
background:#A0CCEB;
border-radius:0.5em;
padding:0.1em 0.4em;
font-size:0.9em;
margin-right:1em;
}
/*密码保护标记*/
.protected-tag{
color:#FFF;
background:#FECB97;
border-radius:0.5em;
padding:0.1em 0.4em;
font-size:0.9em;
margin-right:1em;
}
/*私密标记*/
.private-tag{
color:#FFF;
background:#FC8893;
border-radius:0.5em;
padding:0.1em 0.4em;
font-size:0.9em;
margin-right:1em;
}
就可以做出如下的效果
单独显示
倘若想要将标记单独显示出来,就需要专门判断文章属于哪种类型,以下是判断文章置顶、密码保护、私密的相关函数
is_sticky();
//判断文章是否置顶,文章置顶为true,不置顶为false
post_password_required();
//判断文章是否需要密码,文章有密码且暂未输入密码时为true,文章无密码或已输入密码为false
get_post_status();
//查询文章状态
// 'publish' – 公开发布的文章或页面
// 'pending' – 待审文章
// 'draft' – 草稿
// 'auto-draft' – 自动保存草稿
// 'future' – 定时发布
// 'private' – 私密文章
// 'inherit' – 修订版本
// 'trash' – 在回收站中的
找到博客文章列表页面文件:wp-content/themes/[WordPress使用的主题名称]/content.php
,并在你觉得合适的位置添加以下代码
<?php if( is_sticky() ) echo '<span class="sticky-tag">置顶</span>'; ?>
<?php if( post_password_required() ) echo '<span class="protected-tag">密码保护</span>'; ?>
<?php if( get_post_status()=='private' ) echo '<span class="private-tag">私密</span>'; ?>
再和前一种方法一样添加CSS样式
/*置顶标记*/
.sticky-tag{
color:#FFF;
background:#A0CCEB;
border-radius:0.5em;
padding:0.1em 0.4em;
font-size:0.9em;
margin-right:1em;
}
/*密码保护标记*/
.protected-tag{
color:#FFF;
background:#FECB97;
border-radius:0.5em;
padding:0.1em 0.4em;
font-size:0.9em;
margin-right:1em;
}
/*私密标记*/
.private-tag{
color:#FFF;
background:#FC8893;
border-radius:0.5em;
padding:0.1em 0.4em;
font-size:0.9em;
margin-right:1em;
}
那么就能呈现如下效果