WordPress网站document主题修改调整记录
老白博客目前使用的主题为WordPress的document主题,以下是个人对该主题进行的一些调整,仅供参考
1. css修改
调整了首页站点logo显示的位置和大小
html body .main-header .left a.logo img {
height: 150%;
min-width: 30px;
margin-right: 1rem; }
作者小工具页面简单调整了高度
html body .main-container #fixed .main-right .author .author-beijin img {
width: 16.6rem;
height: 6.2rem;
}
2.侧边栏评论用户头像
这里不知道是啥原因,document主题首页侧边栏最近评论的头像都不能读取到正确的头像,就还是在WordPress后台设置的那个,所以我干脆直接写死,弄到本地
文件地址:template/widget/comments.php,直接替换为下面的代码即可
<?php
/*
* 侧边栏最新文章
* @author 友人a丶
* @date 2022-07-08
* */
?>
<div class="div-info">
<div class="header">
<ul>
<li class="active"><?php echo $title; ?></li>
<!-- <li>修改记录</li>-->
</ul>
</div>
<ul class="ul" style="margin-top: 0.5rem;">
<?php
/*
* 判断显示类型
* */
$comments = get_comments([
"number" => $number,
'status' => 'approve',
"orderby" => "comment_date_gmt",
"include_unapproved" => false
]);
/*
* 递归显示文章
* */
foreach ($comments as $comment) {
// 将头像地址统一调整为指定的地址
$avatar = 'https://www.xcbtmw.com/wp-content/uploads/2023/08/default.webp'; // 替换为您的默认头像地址
echo '<li>
<div class="comment-widget">
<img class="author-avatar" src="' . $avatar . '" title="头像"/>
<a href="' . get_comment_link( $comment ) . '" title="' . $comment->comment_content . '">
<span class="name">
' . $comment->comment_author . '
</span>
<span class="comment-widget-content">
' . $comment->comment_content . '
</span>
</a>
</div>
</li>';
}
wp_reset_query(); //重置文章指指针
?>
</ul>
</div>
3 .评论表单
修改为填写昵称后即可评论
<input placeholder="昵称" name="author" type="text" class="comment-name" value="<?php echo $nickname ?>" required/>
<input placeholder="邮箱" name="email" type="email" class="comment-mail" value="<?php echo $email ?>"/>
<input placeholder="网址" name="url" type="url" class="comment-url" value="<?php echo $webUrl ?>"/>
4.文章自动添加超链接并内链
下面两个
/* 自动为文章添加标签-老白博客 */
add_action('save_post', 'auto_add_tags');
function auto_add_tags(){
$tags = get_tags( array('hide_empty' => false) );
$post_id = get_the_ID();
$post_content = get_post($post_id)->post_content;
if ($tags) {
foreach ( $tags as $tag ) {
// 如果文章内容中含已用过的标签,自动添加这些标签
if ( strpos($post_content, $tag->name) !== false)
wp_set_post_tags( $post_id, $tag->name, true );
}
}
}
添加内链(注意看注释)
/*文章标签添加内链-老白博客*/
//按长度排序
function tag_sort($a, $b)
{
if($a->name == $b->name) return 0;
return (strlen($a->name) > strlen($b->name) ) ? -1 : 1;
}
//改变标签关键字
function tag_link($content)
{
//连接数量
$match_num_from = 1; //一篇文章中同一个关键字少于多少不锚文本(这个直接填1就好了)
$match_num_to = 1; //一篇文章中同一个关键字最多出现多少次锚文本(建议不超过1次)
$posttags = get_the_tags();
if ($posttags) {
usort($posttags, "tag_sort");
foreach($posttags as $tag)
{
$link = get_tag_link($tag->term_id);
$keyword = $tag->name;
//连接代码
$cleankeyword = stripslashes($keyword);
$url = "<a href="$link" title="".str_replace('%s',addcslashes($cleankeyword, '$'),__('查看所有文章关于 %s')).""";
$url .= 'target="_blank"';
$url .= ">".addcslashes($cleankeyword, '$')."</a>";
$limit = rand($match_num_from,$match_num_to);
//不连接的代码
$ex_word = ''; $case='';
$content = preg_replace( '|(<a[^>]+>)(.*)('.$ex_word.')(.*)(</a[^>]*>)|U'.$case, '$1$2%&&&&&%$4$5', $content);
$content = preg_replace( '|(<img)(.*?)('.$ex_word.')(.*?)(>)|U'.$case, '$1$2%&&&&&%$4$5', $content);
$cleankeyword = preg_quote($cleankeyword,''');
$regEx = ''(?!((<.*?)|(<a.*?)))('. $cleankeyword . ')(?!(([^<>]*?)>)|([^>]*?</a>))'s' . $case;
$content = preg_replace($regEx,$url,$content,$limit);
$content = str_replace( '%&&&&&%', stripslashes($ex_word), $content);
}
}
return $content;
}
add_filter('the_content','tag_link',1); //连接到WordPress的模块
/*文章标签添加内链-老白博客*/
5.侧边栏最新评论
文件地址:/template/widget,comments.php文件
修改前:原来点击最新评论时,是跳转对应的评论文章页面
<a href="' . get_the_permalink( $comment->comment_post_ID ) . '" title="' . $comment->comment_content . '">
修改后:修改为跳转对应的评论链接
<a href="' . get_comment_link( $comment ) . '" title="' . $comment->comment_content . '">
6.侧边栏点赞
文件位置:/common/inline/monitor.js
修改前:点赞可以持续点击,单个用户可以无限制点赞
/*
* 文章踩、文章点赞
* */
(function () {
$('.icp-beian div').click(function () {
/*
* 判断点赞的是哪一个
* */
if ($('.icp-beian div').index(this) == 0) {
/*
* 点赞
* */
let that = $(this);
$.post(location.pathname + "?nice=" + Current, function (res) {
that.find('span').text(parseInt(that.find('span').text()) + 1);
});
} else {
/*
* 踩
* */
let that = $(this);
$.post(location.pathname + "?bad=" + Current, function (res) {
that.find('span').text(parseInt(that.find('span').text()) + 1);
});
}
});
})();
修改后:点赞和点踩都只能点击一次,增加了一个判断
/*
* 文章踩、文章点赞
* */
(function () {
// 设置变量来记录是否已经进行过点赞或踩操作
let hasVoted = false;
$('.icp-beian div').click(function () {
// 如果已经进行过点赞或踩操作,则直接返回
if (hasVoted) {
return;
}
// 判断是点赞还是踩操作
if ($('.icp-beian div').index(this) == 0) {
/*
* 点赞
* */
let that = $(this);
$.post(location.pathname + "?nice=" + Current, function (res) {
that.find('span').text(parseInt(that.find('span').text()) + 1);
});
} else {
/*
* 踩
* */
let that = $(this);
$.post(location.pathname + "?bad=" + Current, function (res) {
that.find('span').text(parseInt(that.find('span').text()) + 1);
});
}
// 将hasVoted标记为true,表示已经进行过点赞或踩操作
hasVoted = true;
});
})();
7.加密文章阅读
修改文件:single.php
修改后效果:管理员账户不用输入密码就能查看
在“是否需要输入密码”的前面添加下面的代码即可
//管理员免输入密码即可查看加密文章
if ( current_user_can( 'administrator' ) ) {
add_filter( 'post_password_required', '__return_false' );
}
果然牛批普拉斯,我这不会改的,就跟着屁股溜就行了