无插件给博客加个说说

现在很多博客上都添加了说说或类似的页面,各种样式的都有,看着我心痒痒,真想逮个空给俺那小破站也“武装”一下。看了老张和阿杰等都是调用Memos,样式不错,是俺喜欢的,我也照样画葫芦似的去搭了个Memos(这东西是不错,把它当作随手记也好,当作个人小微博也罢,挺好),但目前尚没有合适的主机跑Docker,要不咱就无插件来一个………………

在借助Chatgpt的帮忙下,生成一些代码还是蛮轻松的,本站的归档、标签、友链都是在“家伙”的帮忙下搞定的,要不然就我这榆木脑袋估计还得折腾好久。大致的步骤如下:

  • 在文章分类目录下新建一个说说,slug写为:shuoshuo
  • 在主题的functions.php中添加如下代码:
/*屏蔽说说在首页中显示*/
function exclude_category_from_home($query) {
    if ($query->is_home() && $query->is_main_query()) {
        $excluded_category = get_category_by_slug('shuoshuo');
        $excluded_category_id = $excluded_category->term_id;
        $query->set('cat', '-' . $excluded_category_id);
    }
}
add_action('pre_get_posts', 'exclude_category_from_home');
  • 新建一个PHP文件,名字可以用template-shuoshuo命名,并在其中添加以下代码:
<?php
/*
Template Name: 说说
*/

get_header(); // 调用主题的header部分
?>

<div id="primary" class="content-area">
    <main id="main" class="site-main" role="main">

        <?php
        // 获取"说说"分类的信息
        $category = get_category_by_slug('shuoshuo');

        // 查询属于"说说"分类的文章列表
        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        $args = array(
            'post_type' => 'post',
            'posts_per_page' => 10,
            'paged' => $paged,
            'cat' => $category->term_id
        );
        $query = new WP_Query($args);

        if ($query->have_posts()) {
            while ($query->have_posts()) {
                $query->the_post();
                // 显示每篇文章的内容
                ?>
                <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

                <div class="author-info">

                   <div class="author-meta">
                   <span class="author-name"><?php the_author(); ?></span>
                   <span class="post-date"><?php the_date(); ?></span>
                   </div>
                </div>

                    <div class="entry-content">
                        <?php the_content(); ?>

                    </div>

                    <footer class="entry-footer">
                        <?php if (comments_open() || get_comments_number()) : ?>
                            <div class="comments-link">
                                <?php comments_popup_link(__('来个评论', 'your-theme'), __('1 Comment', 'your-theme'), __('% Comments', 'your-theme')); ?>

                            </div>
                            <br>
                        <?php endif; ?>
                    </footer>
                </article>
                <?php
            }

            // 显示翻页链接
            echo '<div class="pagination">';
            echo paginate_links(array(
                'total' => $query->max_num_pages
            ));
            echo '</div>';
        }
        ?>

    </main>
</div>

<?php
get_footer(); // 调用主题的footer部分

保存并上传到主题根目录下

  • 加到Wordpress后台,在页面中新建一个页面,模板选择刚才建立的说说模板,以说说为名保存后,再在菜单中添加刚才建立的页面,保存后再刷新首页,就可以去看看效果如何了。当然别忘了新建一篇文章,名字随意,因为说说页面只调用文章的内容。

本文所提到的无插件实现说说功能,原理就是在首页中屏蔽一个分类输出,并将这个分类按要求输出到指定的页面中去,暂未进么美化(本个对CSS也就那点水平,实在是……不能说233),不需要评论的话也可以去掉(评论点进去的界面是不是很眼熟——这不就是文章页嘛)。至于调用Memos回头哪天再找个主机研究研究,说不定啥时也就挤上了
个人看完感觉也没啥好玩的,像我这么懒的,博客更新都慢,还会经常去更新Memos?估计难,没那习惯呀,所以我觉得真有这功夫还是踏实坐下来水几篇是不是更带劲?
2024-01-14 最终还是改成Memos了,用这玩意手机端就可以发送,方便。目前也调试好了,那就开始用吧。

回复 取消回复

捌 + 1 = ?

23条评论

  1. avatar

    你这个说说的页面,比我的那个好看一些 哈哈

    1. avatar

      哪有呀,都是折腾着玩的

  2. avatar

    gpt写的代码咋样?

    1. avatar

      对于我这种老白是够用了

  3. avatar

    在页面后面加上?comm=1就可以评论了!或者使用www.iloli.xin访问!

    1. avatar

      厉害厉害

  4. avatar

    根据大佬的思路做了个页面
    https://www.gymxbl.com/blog/
    请过目!

  5. avatar

    最近不知道干些什么好,感谢给了个思路,其实可以把主题的首页作为说说的列表页面

    1. avatar

      客气了

  6. avatar

    也开始折腾Memos了呀,现在是人手一个了。不过这个真是个好东西。

    1. avatar

      这东西确实是个好东西,有点后悔没有早点上车了

      1. avatar

        还没调试好么,我看你14日就用上了。

      2. avatar

        我也是照猫画虎而已

  7. avatar

    请问您的博客使用的是什么字体?谢谢

    1. avatar

      小米字体

  8. avatar

    这是没有通过 memos 搞定了说说?

    1. avatar

      是通过memos的,我之前加载不出来是因为套了又拍云的加速,部分参数没有设置,所以一直加载不出来。现在碰到的问题是,用你给的这些搭好后,照片不会显示,因为我照片是放在第三方存储上的,默认参数只能读出数据库的,代码不太懂,暂时计划用木木木木的方案,不过评论好像也要换成Twikoo

  9. avatar

    除了要从文章列表页面隐藏这些说说以外,还有 RSS Feed 也要做一下隐藏,不然要露馅啦~

    将 memos 接到博客里面我以前折腾过,不过当时用的不是 WordPress,是静态博客。有一个比较麻烦的点是 memos 的 API 返回的是 Markdown,还得自己去渲染成 HTML,另外图片附件也得自己插 img 标签。

    我个人认为既然已经用动态博客程序,有现成的数据库了,另外接一个 memos 可能不是最合适的,就像你不会给 WordPress 再接一个 Twikoo 或者 Artalk 评论系统一样。
    也许可以尝试找一下有没有合适的说说功能的 WordPress 插件?

    1. avatar

      说的非常好,我这个也只是在首页进行了分类屏蔽,像归档、RSS都没有的,甚至在文章的上下一条都能找到,没去搞太复杂的,目前已经在尝试其它办法,或使用Memos嵌入,或像你说的,反正都去尝试尝试,折腾一下

  10. avatar

    我memos更新比博客勤快,几乎每天都会发个一两条。

    1. avatar

      厉害,这东西感觉是挺方便的,手机上随时可以来那么一条

    2. avatar

      你们现在玩的这么高端了吗?好久不折腾博客了,都不知道还有这功能,Memos是个啥都不知道哈哈

      1. avatar

        我这还是小打小闹,他们那些才是厉害