您好,登錄后才能下訂單哦!
今天小編給大家分享一下WordPress中如何建立文章存檔頁面的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
方法一:SQL讀取數據庫
方法一展示的存檔頁面效果就是本站的Sitemap效果,其實就是創建一個自定義的頁面模板,操作起來也很簡單,不需要你懂太多的編程技術,唯一要配置的就是修改sitemap.xml的鏈接。方法一的優點是,我使用的是SQL直接從數據庫中讀取數據,而且只進行兩次數據庫連接,避免了使用WordPress內置函數,速度相對來說會快那么一點點;缺點是,你要復制的代碼相對來說長點。下面看看具體步驟:
1、在當前主題目錄下新建一個php文件,命名為sitemap.php,然后將page.php中的所有代碼復制到sitemap.php中
2、刪除sitemap.php開頭的所有注釋,即 /* 與 */ ,以及它們之間的所有內容
3、將第一個 <?php 改成
<?php/*
* Template Name: sitemap
* @author: Ludou
* @Blog : https://www.ludou.org/
*/
4、將 <?php the_content(); ?> 改成:
<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 = 'category'
AND {$wpdb->prefix}posts.post_status = 'publish'
AND {$wpdb->prefix}posts.post_type = 'post'
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 '<li><strong>分類:</strong> <a title="'.$mypost->categoryname.'" href="'.get_category_link($mypost->catID).'">'.$mypost->categoryname."</a>\n";
echo '<ul>';
}
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 '<li><strong>分類:</strong> <a title="'.$mypost->categoryname.'" href="'.get_category_link($mypost->catID).'">'.$mypost->categoryname."</a>\n";
echo '<ul>';
?>
<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 = 'publish'
AND post_type = 'page'");
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 h3 {
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、文章存檔頁就創建成功了。
方法二的操作也很簡單,代碼量更少,不過這里只是純粹地列出所有的文章,并不會像方法一那樣按分類來列出文章,略顯單調,不過如果嫌方法一麻煩的話可以試試。下面是具體操作方法:
1~3步跟方法一是一樣的,第4步:
將 the_content();
改成以下代碼就可以了:
echo '<ul>';
wp_get_archives('type=postbypost&show_post_count=1');
echo '</ul>';
5~6步也跟方法一一樣。
以上就是“WordPress中如何建立文章存檔頁面”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。