共计 3712 个字符,预计需要花费 10 分钟才能阅读完成。
今天丸趣 TV 小编给大家分享一下 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 > 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、文章存档页就创建成功了。
方法二:使用 wp_get_archives 函数
方法二的操作也很简单,代码量更少,不过这里只是纯粹地列出所有的文章,并不会像方法一那样按分类来列出文章,略显单调,不过如果嫌方法一麻烦的话可以试试。下面是具体操作方法:
1~3 步跟方法一是一样的,第 4 步:
将 the_content(); 改成以下代码就可以了:
echo ul
wp_get_archives(type=postbypost show_post_count=1
echo /ul
5~6 步也跟方法一一样。
以上就是“WordPress 中如何建立文章存档页面”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,丸趣 TV 小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注丸趣 TV 行业资讯频道。