banner
Feng

Feng's xLog

我在xLog上的窝

在博客中添加评论功能,无需插件

現在很多博客上都添加了說說或類似的頁面,各種樣式的都有,看著我心癢癢,真想逮個空給俺那小破站也 “武裝” 一下。看了老張和阿傑等都是調用 Memos,樣式不錯,是俺喜歡的,我也照樣畫葫蘆似的去搭了個 Memos(這東西是不錯,把它當作隨手記也好,當作個人小微博也罷,挺好),但目前尚沒有合適的主機跑 Docker,要不咱就無插件來一個………………

image

在借助 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 了,用這玩意手機端就可以發送,方便。目前也調試好了,那就開始用吧。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。