李锋镝的博客

  • 首页
  • 时间轴
  • 留言
  • 插件
  • 左邻右舍
  • 关于我
    • 关于我
    • 另一个网站
  • 知识库
  • 赞助
Destiny
自是人生长恨水长东
  1. 首页
  2. 原创
  3. 正文

wordpress增加说说功能

2025年4月2日 195点热度 0人点赞 0条评论

后台添加说说模块

首先我们把以下代码,添加到主题根目录中的functions.php文件中。下面两步代码安装完成后,在后台页面,建立微语页面,在设置菜单,保存首页导航栏即可。

function create_shuoshuo_post_type() {
    $labels = array(
        'name'               => '说说',
        'singular_name'      => '说说',
        'menu_name'          => '说说',
        'name_admin_bar'     => '说说',
        'add_new'            => '新增说说',
        'add_new_item'       => '新增一条说说',
        'new_item'           => '新说说',
        'edit_item'          => '编辑说说',
        'view_item'          => '查看说说',
        'all_items'          => '所有说说',
        'search_items'       => '搜索说说',
        'not_found'          => '未找到说说',
        'not_found_in_trash' => '回收站中未找到说说'
    );

    $args = array(
        'labels'             => $labels,
        'public'             => true,
        'has_archive'        => true,
        'publicly_queryable' => true,
        'show_ui'            => true,
        'show_in_rest' => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array('slug' => 'shuoshuo'),
        'capability_type'    => 'post',
        'hierarchical'       => false,
        'menu_position'      => 5,
        'supports'           => array('title', 'editor', 'author', 'comments')
    );

    register_post_type('shuoshuo', $args);
}
add_action('init', 'create_shuoshuo_post_type');

前端模版页面

在模板主题根目录新建一个名为page-shuo.php的文件,并将以下代码添加在其中:

<?php

/**
 * Template Name: 说说/微语
 */

get_header();
?>
<!-- 引入 jQuery 库 -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<style>
    /* 页面整体背景色,选择莫兰迪色系的浅灰色 */
    body {
        background-color: #f5f5f0;
    }

    body.theme-dark .cbp_tmtimeline::before {
        background: RGBA(255, 255, 255, 0.06)
    }

    ul.cbp_tmtimeline {
        padding: 0
    }

    div.cbp_tmlabel > li .cbp_tmlabel {
        margin-bottom: 0
    }

    .cbp_tmtimeline {
        margin: 30px 0 0 0;
        padding: 0;
        list-style: none;
        position: relative
    }

    .cbp_tmtimeline > li .cbp_tmtime {
        display: block;
        max-width: 70px;
        position: absolute
    }

    .cbp_tmtimeline > li .cbp_tmtime span {
        display: block;
        text-align: right
    }

    .cbp_tmtimeline > li .cbp_tmtime span:first-child {
        font-size: 0.9em;
        color: #888888; /* 莫兰迪色系的深灰色 */
    }

    .cbp_tmtimeline > li .cbp_tmtime span:last-child {
        font-size: 1.2em;
        color: #759375; /* 莫兰迪色系的绿色 */
    }

    .cbp_tmtimeline > li:nth-child(odd) .cbp_tmtime span:last-child {
        color: RGBA(255, 125, 73, 0.75)
    }

    div.cbp_tmlabel > p {
        margin-bottom: 0
    }

    /* 调整列表项与头像的间距 */
   .cbp_tmtimeline > li .cbp_tmlabel {
        margin: 0 0 45px 75px; /* 减少左边距,拉近与头像的距离 */
        padding: 1.2em 1.5em;
        font-weight: 300;
        line-height: 1.6;
        position: relative;
        border-radius: 10px;
        transition: all 0.3s ease 0s;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* 更柔和的阴影效果 */
        cursor: pointer;
        display: block;
    }

    .cbp_tmlabel:hover {
        transform: translateY(-3px);
        z-index: 1;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); /* 悬停时更明显的阴影效果 */
    }

    /* 调整箭头的位置 */
   .cbp_tmtimeline > li .cbp_tmlabel:after {
        right: 100%;
        border: solid transparent;
        content: " ";
        height: 0;
        width: 0;
        position: absolute;
        pointer-events: none;
        border-width: 10px;
        top: 20px; /* 调整箭头的垂直位置 */
    }

    p.shuoshuo_time {
        margin-top: 15px;
        border-top: 1px dashed #ccc; /* 莫兰迪色系的浅灰色线条 */
        padding-top: 8px;
        font-family: 'Playfair Display', serif; /* 更具艺术感的字体 */
        font-size: 0.9em;
        color: #888888;
    }

    @media screen and (max-width:65.375em) {
        .cbp_tmtimeline > li .cbp_tmtime span:last-child {
            font-size: 1.2em
        }
    }

    .shuoshuo_author_img img {
        border: 2px solid #fff;
        padding: 2px;
        float: left;
        border-radius: 50%;
        transition: all 1.0s;
        height: 60px;
        margin-right: 15px;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    }

    .avatar {
        -webkit-border-radius: 100% !important;
        -moz-border-radius: 100% !important;
        box-shadow: inset 0 -1px 0 #3333sf;
        -webkit-box-shadow: inset 0 -1px 0 #3333sf;
        -webkit-transition: 0.4s;
        -webkit-transition: -webkit-transform 0.4s ease-out;
        transition: transform 0.4s ease-out;
        -moz-transition: -moz-transform 0.4s ease-out
    }

    .zhuan {
        transform: rotateZ(720deg);
        -webkit-transform: rotateZ(720deg);
        -moz-transform: rotateZ(720deg)
    }

    /* 定义更多不同的莫兰迪色系背景颜色,增加多样性 */
   .cbp_tmtimeline > li:nth-child(6n + 1) .cbp_tmlabel {
        background-color: #e0c6d2;
    }

   .cbp_tmtimeline > li:nth-child(6n + 2) .cbp_tmlabel {
        background-color: #c8d5e0; /* 浅蓝色 */
    }

   .cbp_tmtimeline > li:nth-child(6n + 3) .cbp_tmlabel {
        background-color: #d2e0c6; /* 浅绿色 */
    }

   .cbp_tmtimeline > li:nth-child(6n + 4) .cbp_tmlabel {
        background-color: #e0d2c6; /* 浅橙色 */
    }

   .cbp_tmtimeline > li:nth-child(6n + 5) .cbp_tmlabel {
        background-color: #d2c6e0; /* 浅紫色 */
    }

   .cbp_tmtimeline > li:nth-child(6n) .cbp_tmlabel {
        background-color: #c6d2e0; /* 浅蓝绿色 */
    }

   .cbp_tmtimeline > li:nth-child(6n + 1) .cbp_tmlabel:after {
        border-right-color: #e0c6d2;
    }

   .cbp_tmtimeline > li:nth-child(6n + 2) .cbp_tmlabel:after {
        border-right-color: #c8d5e0;
    }

   .cbp_tmtimeline > li:nth-child(6n + 3) .cbp_tmlabel:after {
        border-right-color: #d2e0c6;
    }

   .cbp_tmtimeline > li:nth-child(6n + 4) .cbp_tmlabel:after {
        border-right-color: #e0d2c6;
    }

   .cbp_tmtimeline > li:nth-child(6n + 5) .cbp_tmlabel:after {
        border-right-color: #d2c6e0;
    }

   .cbp_tmtimeline > li:nth-child(6n) .cbp_tmlabel:after {
        border-right-color: #c6d2e0;
    }

    /* 调整字体样式 */
   .cbp_tmtimeline > li .cbp_tmlabel p {
        margin-bottom: 8px;
        font-family: 'Playfair Display', serif; /* 更具艺术感的字体 */
    }

    /* 增加间距 */
   .cbp_tmtimeline > li {
        margin-bottom: 30px;
    }

    /* 移动端样式调整 */
    @media screen and (max-width: 768px) {
       .cbp_tmtimeline > li .cbp_tmlabel {
            margin: 0 0 30px 60px; /* 进一步减少左边距 */
            padding: 1em 1.2em; /* 减少内边距 */
        }

       .cbp_tmtimeline > li .cbp_tmlabel:after {
            border-width: 8px; /* 缩小箭头尺寸 */
            top: 15px; /* 调整箭头垂直位置 */
        }

        p.shuoshuo_time {
            font-size: 0.8em; /* 缩小时间字体大小 */
        }
    }
</style>

<div id="primary" class="content-area" style="width:100%">
    <main id="main" class="site-main" role="main">
        <div class="cbp_shuoshuo">
            <?php
            $paged = (get_query_var('paged'))? get_query_var('paged') : 1;
            // 使用 WP_Query 代替 query_posts
            $args = array(
                'post_type' =>'shuoshuo',
                'post_status' => 'publish',
                'posts_per_page' => 20,
                'paged' => $paged
            );
            $query = new WP_Query($args);
            $total_pages = $query->max_num_pages;
            if ($query->have_posts()) : ?>
                <ul class="cbp_tmtimeline" id="shuoshuo-list">
                    <?php
                    while ($query->have_posts()) : $query->the_post(); ?>
                        <li>
                            <span class="shuoshuo_author_img"><?php echo get_avatar(get_the_author_meta('ID'), 60); ?></span>
                            <a class="cbp_tmlabel" href="javascript:void(0)">
                                <p><?php the_content(); ?></p>
                                <p class="shuoshuo_time"><i class="fa fa-clock-o"></i> <?php the_time('Y年n月j日G:i'); ?></p>
                            </a>
                        </li>
                    <?php endwhile;
                    wp_reset_postdata(); // 重置查询
                    ?>
                </ul>
                <?php
                if ($total_pages > 1) {
                    $big = 999999999; // 需要一个不太可能的整数
                    echo '<div class="pagination">';
                    echo paginate_links(array(
                        'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
                        'format' => '?paged=%#%',
                        'current' => max(1, $paged),
                        'total' => $total_pages
                    ));
                    echo '</div>';
                }
                ?>
            <?php
            else : ?>
                <h3 style="text-align: center;">你还没有发表说说噢!</h3>
                <p style="text-align: center;">赶快去发表你的第一条说说心情吧!</p>
            <?php
            endif; ?>
        </div>
    </main><!-- #main -->
</div><!-- #primary -->
<script type="text/javascript">
    $(function () {
        var oldClass = "";
        var Obj = "";
        $(".cbp_tmtimeline li").hover(function () {
            Obj = $(this).children(".shuoshuo_author_img");
            Obj = Obj.children("img");
            oldClass = Obj.attr("class");
            var newClass = oldClass + " zhuan";
            Obj.attr("class", newClass);
        }, function () {
            Obj.attr("class", oldClass);
        });
    });
</script>
<?php
get_footer();

新建页面,选择模板

最后刷新前后端,后台在自定义页面选择模板【说说微语】即可。

效果预览:https://www.lifd.site/something-to-say/

除非注明,否则均为李锋镝的博客原创文章,转载必须以链接形式标明本文链接

本文链接:https://www.lifengdi.com/archives/article/4278

相关文章

  • WordPress自定义文章类型支持古腾堡编辑器(Gutenberg)的方法
  • SpringBoot常用注解
  • CompletableFuture使用详解
  • 金融级JVM深度调优实战的经验和技巧
  • SpringBoot 中内置的 49 个常用工具类
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: WordPress 说说
最后更新:2025年4月3日

李锋镝

既然选择了远方,便只顾风雨兼程。

打赏 点赞
< 上一篇
下一篇 >

文章评论

1 2 3 4 5 6 7 8 9 11 12 13 14 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 54 55 57 58 60 61 62 63 64 65 66 67 69 72 74 76 77 78 79 80 81 82 85 86 87 90 92 93 94 95 96 97 98 99
取消回复

他乡共酌金花酒,万里同悲鸿雁天。

最新 热点 随机
最新 热点 随机
SpringBoot框架自动配置之spring.factories和AutoConfiguration.imports 应用型负载均衡(ALB)和网络型负载均衡(NLB)区别 什么是Helm? TransmittableThreadLocal介绍与使用 ReentrantLock深度解析 RedisTemplate和Redisson的区别
玩博客的人是不是越来越少了?准备入手个亚太的ECS,友友们有什么建议吗?什么是Helm?2024年11月1号 农历十月初一别再背线程池的七大参数了,现在面试官都这么问URL地址末尾加不加“/”有什么区别
【PostgreSQL 15】PostgreSQL 15对UNIQUE和NULL的改进 基于Java8的Either类 SpringBoot整合Elasticsearch游标查询(scroll) 不慌不忙的坚强(林徽因39段最美文字!) JMX监控权限认证配置 醒醒~补个税了
标签聚合
数据库 SpringBoot 架构 Spring 设计模式 日常 面试 教程 IDEA 文学 JAVA ElasticSearch MySQL 分布式 Redis SQL docker 多线程 K8s JVM
友情链接
  • i架构
  • 临窗旋墨
  • 博友圈
  • 博客录
  • 博客星球
  • 哥斯拉
  • 志文工作室
  • 搬砖日记
  • 旋律的博客
  • 旧时繁华
  • 林羽凡
  • 知向前端
  • 蜗牛工作室
  • 集博栈
  • 韩小韩博客
  • 風の声音

COPYRIGHT © 2025 lifengdi.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Dylan

津ICP备2024022503号-3