首頁  >  文章  >  CMS教程  >  詳解WordPress中怎麼建立文章存檔頁面

詳解WordPress中怎麼建立文章存檔頁面

青灯夜游
青灯夜游轉載
2023-03-20 18:31:011903瀏覽

什麼是文章存檔頁面? WordPress中怎麼輕鬆建立文章存檔頁面?以下這篇文章為大家介紹一下WordPress中建立存檔頁面的3種方法,希望對大家有幫助!

詳解WordPress中怎麼建立文章存檔頁面

可能你會問,什麼是文章存檔頁面,有什麼用?在開始之前,我們先來感性認識什麼是存檔頁面,請點選查看本站的 Sitemap。你可以看到這個檔案頁面列出我部落格上所有文章和所有的頁面,一個方面如果讀者想一下子看到本站的文章,那麼到此頁面來看就輕鬆多了;另外據說對SEO有幫助,目前我還沒有證實。最後,你可能已經意識到,原來網站根目錄下方不是有個sitemap.xml了嗎?為什麼還要創建這樣的存檔頁面呢?其實sitemap.xml是給搜尋引擎蜘蛛看,而這個檔案頁面是給人看的。下面我來講講如何建立這個頁面,有興趣的可以看看。

方法一:SQL讀取資料庫

     方法一展示的檔案頁面效果就是本站的Sitemap效果,其實就是建立一個自訂的頁面模板,操作起來也很簡單,不需要你懂太多的程式技術,唯一要設定的就是修改sitemap.xml的連結。方法一的優點是,我使用的是SQL直接從資料庫中讀取數據,而且只進行兩次資料庫連接,避免了使用WordPress內建函數,速度相對來說會快那麼一點點;缺點是,你要複製的程式碼相對來說長點。以下來看看具體步驟:

1、在目前主題目錄下新建一個php文件,命名為sitemap.php,然後將page.php中的所有程式碼複製到sitemap.php中
2、刪除sitemap.php開頭的所有註釋,即/* 與*/ ,以及它們之間的所有內容
3、將第一個2995654cb889596f1722cad83844abcc 改成:

<div class="myArchive">
<ul>
<?php
/**
 * WordPress分类存档页面
 * 作者:露兜
 * 博客:https://www.ludou.org/
 * 最后修改:2012年8月27日
 */
    $categoryPosts = $wpdb->get_results("
    SELECT post_title, ID, post_name, slug, {$wpdb->prefix}terms.term_id AS catID, {$wpdb->prefix}terms.name AS categoryname
    FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy, {$wpdb->prefix}terms
    WHERE {$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id
    AND {$wpdb->prefix}terms.term_id = {$wpdb->prefix}term_taxonomy.term_id
    AND {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id
    AND {$wpdb->prefix}term_taxonomy.taxonomy = &#39;category&#39;
    AND {$wpdb->prefix}posts.post_status = &#39;publish&#39;
    AND {$wpdb->prefix}posts.post_type = &#39;post&#39;
    ORDER BY {$wpdb->prefix}terms.term_id, {$wpdb->prefix}posts.post_date DESC");

    $postID = 0;
    if ( $categoryPosts ) :
        $category = $categoryPosts[0]->catID;
        foreach ($categoryPosts as $key => $mypost) :
            if($postID == 0) {
                echo &#39;<li><strong>分类:</strong> <a title="&#39;.$mypost->categoryname.&#39;" href="&#39;.get_category_link($mypost->catID).&#39;">&#39;.$mypost->categoryname."</a>\n";
                echo &#39;<ul>&#39;;
            }
           
            if($category == $mypost->catID) {          
?>
    <li><a title="<?php echo $mypost->post_title; ?>" href="<?php echo get_permalink( $mypost->ID ); ?>"><?php echo $mypost->post_title; ?></a></li>
<?php
                $category = $mypost->catID;
                $postID++;
            }
            else {
                echo "</ul>\n</li>";
                echo &#39;<li><strong>分类:</strong> <a title="&#39;.$mypost->categoryname.&#39;" href="&#39;.get_category_link($mypost->catID).&#39;">&#39;.$mypost->categoryname."</a>\n";
                echo &#39;<ul>&#39;;
?>
    <li><a title="<?php echo $mypost->post_title; ?>" href="<?php echo get_permalink( $mypost->ID ); ?>"><?php echo $mypost->post_title; ?></a></li>
<?php
                $category = $mypost->catID;
                $postID = 1;
            }
        endforeach;
    endif;
    echo "</ul>\n</li>";
?>

<li><strong>页面</strong>
<ul>
<?php
    // 读取所有页面
    $mypages = $wpdb->get_results("
        SELECT post_title, post_name, ID
        FROM {$wpdb->prefix}posts
        WHERE post_status = &#39;publish&#39;
        AND post_type = &#39;page&#39;");

    if ( $mypages ) :
        foreach ($mypages as $mypage) :
?>
    <li><a title="<?php echo $mypage->post_title; ?>" href="<?php echo get_permalink( $mypage->ID ); ?>"><?php echo $mypage->post_title; ?></a></li>
    <?php endforeach; echo "</ul>\n</li>"; endif; ?>
</ul>
<p><a href="https://www.ludou.org/sitemap.xml">查看 sitemap.xml</a></p>
</div>

     最後最後第二行的https://www.ludou.org/sitemap. xml 改成你自己的sitemap.xml 連結就可以了,修改完之後記得用UTF-8編碼保存,否則中文可能會亂碼。上面的程式碼直接用到你的WordPress網站中理論上講是沒多大問題,但是可能在美觀程度上會有一定的問題,你可以根據個人能力用CSS稍微修飾一下就可以了,另外我這裡提供了一個CSS的範例,你可以參考,複製到主題目錄下的style.css中,可能會達到本站sitemap的樣式效果:

.myArchive {
	line-height:18px;
	margin:1.5em 0;
	color:#555555;
	font-size:14px;
}
.myArchive h2 {
	font-size:16px;
	margin:0 0 10px;
	font-weight:bold;
}
.myArchive ul {
	line-height:21px;
	padding:0 0 0 2em;
}
.myArchive ul li {
	background:none;
	list-style-type:disc;
	margin:0;
	padding-left:10px;
}
.myArchive a {
	color:#2970A6;
	outline:medium none;
	text-decoration:none;
}
.myArchive a:hover {
	text-decoration:underline;
}
.myArchive ul li ul {
	margin:10px 0;
}
.myArchive ul li ul li {
	list-style-type:circle;
}

5、進入WordPress管理後台-頁面- 創建頁面,標題為文章存檔(可以自己命名),內容不要填,右側可以選擇模板,選擇sitemap 即可
6、文章存檔頁就創建成功了。

方法二:使用wp_get_archives函數

     方法二的操作也很簡單,程式碼量較少,但這裡只是純粹地列出所有的文章,並不會像方法一那樣按分類來列出文章,略顯單調,不過如果嫌方法一麻煩的話可以試試。以下是具體操作方法:

1~3步跟方法一是一樣的,第4步:
the_content(); 改成以下程式碼就可以了:

echo &#39;<ul>&#39;;
wp_get_archives(&#39;type=postbypost&show_post_count=1&#39;);
echo &#39;</ul>&#39;;

5~6步驟也跟方法一一樣。

方法三:使用外掛程式

     關於WordPress存檔頁面的外掛程式由很多,有興趣的話,請自行搜索,這裡就不仔細介紹。

推薦學習:《WordPress教學

以上是詳解WordPress中怎麼建立文章存檔頁面的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:ludou.org。如有侵權,請聯絡admin@php.cn刪除