给自己的博客增加一个微语模块
首先感谢Nickの博客的博主,是他分享了这个微语模块的代码,实现了添加微语模块功能。下面文章是实际操作过程,请按教程添加!
添加微语模块wordpress中涉及的文件
- /wp-content/themes/主题/functions.php
- /wp-content/themes/主题/whisper.php (新建的模板页面)
1:在后台主题编辑里编辑functions.php
在wordpress中是自带类似说说发布的模块的,但是这个需要手动注册这个模块
在functions.php文件末尾增加下面方法,注册一个新的帖子类型,方便日后编辑说说
/*注册一个新的帖子类型,方便日后编辑说说*/
add_action('init', 'my_custom_shuoshuo_init');
function my_custom_shuoshuo_init() {
$labels = array(
'name' => '说说',
'singular_name' => '说说',
'all_items' => '所有说说',
'add_new' => '发表说说',
'add_new_item' => '撰写新说说',
'edit_item' => '编辑说说',
'new_item' => '新说说',
'view_item' => '查看说说',
'search_items' => '搜索说说',
'not_found' => '暂无说说',
'not_found_in_trash' => '没有已遗弃的说说',
'parent_item_colon' => '',
'menu_name' => '说说'
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => true,
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => null,
'supports' => array('title','editor','author')
);
register_post_type('shuoshuo',$args);
}
把以上代码插入模板functions.php末尾(注意添加以上代码函数是在?>代码函数前面)
2:创建whisper.php文件
根据自己的主题在主题的对于模板页面目录新建文件,whisper.php。
下面是自己修改过的说说页面的代码(现在发的代码是我经过deepseek修改过的代码,因为博主提供的代码中第9行的函数未定义会导致出错。
还有未注释掉侧边栏,,会导致侧边栏出现在微语模块的下方,影响整体美观。)
<?php
/**
template name: 微语说说
*/
get_header();// 在第9行之前添加缺失的函数定义(不删除原有代码)
if (!function_exists('_opt')) {
function _opt($option_name = '', $default = '') {
return $default;
}
}if (!function_exists('get_topSlider')) {
function get_topSlider($post_ids = array(), $type = 'single-imageflow') {
// 空函数,仅防止错误
return '';
}
}
?><?php
// 原有的第9行代码保持不变,只修复格式
$frontpage_carousels_type = _opt('frontpage_carousels_type');
$type = strstr($frontpage_carousels_type, 'full') ? 'single-imageflow-full':'single-imageflow';
get_topSlider(array($post->ID),$type);
?>
<div class="container postListsModel"><div class="row"><style type="text/css">
/** 垂直时间线CSS样式 */.cbp_tmtimeline {
margin: 30px 0 0 0;
padding: 0;
list-style: none;
position: relative;
}
/* The line */
.cbp_tmtimeline:before {
content: '';
position: absolute;
top: 0;
bottom: 0;
width: 10px;
background: #afdcf8;
left: 20%;
margin-left: -6px;
}
/* The date/time */
.cbp_tmtimeline > li .cbp_tmtime {
display: block;
width: 30%;
padding-right: 100px;
position: absolute;
font-size: 16px;
color: #AAA;
}
.cbp_tmtimeline > li .cbp_tmtime span {
display: block;
text-align: right;
}
.cbp_tmtimeline > li .cbp_tmtime span:first-child {
font-size: 0.9em;
color: #bdd0db;
}
.cbp_tmtimeline > li .cbp_tmtime span:last-child {
font-size: 2.9em;
color: #24a0f0;
}
.cbp_tmtimeline > li:nth-child(odd) .cbp_tmtime span:last-child {
color: #7878f0;
}
/* Right content */
.cbp_tmtimeline > li .cbp_tmlabel {
margin: 0 0 15px 25%;
background: #24a0f0;
color: #fff;
padding: 0.8em;
font-size: 1.2em;
font-weight: 300;
line-height: 1.4;
position: relative;
border-radius: 5px;
box-shadow: rgba(142, 142, 142, 0.9) 0px 6px 15px 0px;
-webkit-box-shadow: rgba(142, 142, 142, 0.9) 0px 6px 15px 0px;}
.cbp_tmtimeline > li:nth-child(odd) .cbp_tmlabel {
background: #7878f0;
}
.cbp_tmtimeline > li .cbp_tmlabel h2 {
border-bottom: 0px;
/*border-top:1px dashed #FFF; */
font-size:18px;
height: 24px;
padding: 5px 3px 12px;
margin:0px;
}
.cbp_tmtimeline > li .cbp_tmlabel h2 > span {
font-size: 18px;
float: right;
text-align: center;
line-height: 24px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/* The triangle */
.cbp_tmtimeline > li .cbp_tmlabel:after {
right: 100%;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none;
border-right-color: #24a0f0;
border-width: 10px;
top: 10px;
}
.cbp_tmtimeline > li:nth-child(odd) .cbp_tmlabel:after {
border-right-color: #7878f0;
}
/* The icons */
.cbp_tmtimeline > li .cbp_tmicon {
width: 48px;
height: 48px;
font-family: 'ecoico';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
font-size: 48px;
line-height: 48px;
-webkit-font-smoothing: antialiased;
position: relative;
color: #fff;
background: #afdcf8;
border-radius: 50%;
box-shadow: 0 0 0 8px #afdcf8;
text-align: center;
left: 20%;
top: 0;
margin: 0 0 0 -25px;
}
.cbp_tmtimeline > li .cbp_tmicon >img {
border-radius: 50%;
position: absolute;
top: 0px;
left: 0px;
}
/* Example Media Queries */
@media screen and (max-width: 65.375em) {
.cbp_tmtimeline > li .cbp_tmtime span:last-child {
font-size: 1.5em;
}
}
@media screen and (max-width: 47.2em) {
.cbp_tmtimeline:before {
display: none;
}
.cbp_tmtimeline > li .cbp_tmtime {
width: 100%;
position: relative;
padding: 0 0 20px 0;
}
.cbp_tmtimeline > li .cbp_tmtime span {
text-align: left;
}
.cbp_tmtimeline > li .cbp_tmlabel {
margin: 0 0 30px 0;
padding: 1em;
font-weight: 400;
font-size: 95%;
}
.cbp_tmtimeline > li .cbp_tmlabel:after {
right: auto;
left: 20px;
border-right-color: transparent;
border-bottom-color: #24a0f0;
top: -20px;
}
.cbp_tmtimeline > li:nth-child(odd) .cbp_tmlabel:after {
border-right-color: transparent;
border-bottom-color: #7878f0;
}
.cbp_tmtimeline > li .cbp_tmicon {
position: relative;
float: right;
left: auto;
margin: -55px 5px 0 0px;
}
}
</style>
<section class="container">
<div class="content-wrap">
<div class="content">
<div style="background: #FFF; padding: 30px; border-radius: 5px;">
<ul class="cbp_tmtimeline">
<?php
query_posts("post_type=shuoshuo & post_status=publish & posts_per_page=-1");
if ( have_posts() ) {
while ( have_posts() ) {
the_post(); ?>
<li>
<time class="cbp_tmtime"><i class="fa fa-clock-o"></i> <?php the_time('Y年n月j日G:i'); ?></time>
<div class="cbp_tmicon">
<img src="https://liushumeng.com/wp-content/uploads/2025/09/20250927.jpg" class="avatar avatar-48" width="48" height="48">
</div>
<div class="cbp_tmlabel" >
<span style="font-size:18px;"><?php the_content(); ?></span>
<h2><span>——— <?php the_title(); ?></span></h2>
</div>
</li>
<?php }
} ?>
</ul>
</div>
</div>
</div>
<?php //get_sidebar(); ?>
</section>
特别注意以上代码中里面的图片链接需要更换成你自己的图片链接地址!切记!
<img src="你自己的图片地址" class="avatar avatar-48" width="48" height="48">
发布说说
在functions.php文件中注册了说说模块后,可以发现在wordpress后台中,新增了一个说说的模块。
在主题中新增了whisper.php模板页面后,可以发现在新建页面,增加了一个“微语说说”页面的选择
最后就是把新建的也没添加到菜单导航里,就可以实现微语模块功能了!
演示图如下:
最后还是要感谢Nikeの博客,文中涉及的添加方法均转载自原作者:wordpress优化经历(五)——添加微语说说模块 | Nickの博客 (qkongtao.cn)