在WordPress这个强大的内容管理系统中,我们经常需要展示一些随机文章,以增加网站的趣味性和用户体验。如何轻松实现WordPress获取随机文章的功能呢?本文将为您详细介绍几种方法,让您轻松实现个性化阅读体验。
一、使用插件实现
1. 插件推荐
目前,WordPress插件市场中有很多可以获取随机文章的插件,以下是一些受欢迎的插件:
* Random Posts Widget: 一个简单的随机文章小工具,可以轻松添加到侧边栏或页面。
* Random Post: 一个功能强大的插件,可以随机显示文章、分类、标签等。
* Random Posts by Category: 根据分类显示随机文章。
2. 插件安装与设置
以“Random Posts Widget”为例,以下是安装与设置步骤:
(1)在WordPress后台,点击“插件”->“添加新插件”。
(2)搜索“Random Posts Widget”,找到插件后点击“安装”。
(3)安装完成后,点击“激活”。
(4)在侧边栏中找到“小工具”,将“Random Posts Widget”拖到相应位置。
(5)在“Random Posts Widget”设置中,可以调整显示文章数量、标题长度等参数。
二、使用代码实现
如果您不想使用插件,也可以通过编写代码来实现获取随机文章的功能。
1. 获取随机文章ID
在WordPress中,我们可以通过以下代码获取随机文章ID:
“`php
function get_random_post_id() {
global $wpdb;
$query = “
怎样搭建一个自有域名的 WordPress 博客
新建一个博客文件
购买域名(Domain Name)
注册一个主机空间(Web Host)
域名解析(DNSPod)
安装WordPress安装WordPress主题
设置固定链接安装插件
图片存储
添加网站图标
完成这几个步骤之后,博客基本上就可以正常使用了,当然后面还要做一些优化,这方面这里不予讨论,下面针对每一项操作做具体的介绍。
新建一个博客文件
在搭建博客的过程中,我们需要创建一个文件,用来存储博客的相关信息。这些信息包括域名的信息,主机空间服务器ip,FTP登录名和密码,空间面板登录信息等等,只要是与该博客有关的信息,全部存在这个文件内,方便以后查看。
购买域名
域名当然要去最有名的去他爹网站(goDaddy)购买了,作为全球最大的域名注册商,且支持支付宝付款,是我们购买域名的不二选择。
域名后缀推荐买一级域名“.com”,虽然“.com”域名比其他的贵些,但是goDaddy会定期做优惠活动,Google上搜索“goDaddy优惠券”会出现很多相关链接,我的域名就是在做活动的时候买的,只花了1美元。如果选中了喜欢的域名,而暂时没有活动时,不妨加入购物车后等几天,相信你会收到打折邮件的。另外购买特价域名时只能用信用卡,所以一张双币信用卡也是必不可少的。
注册一个主机空间
主机空间是存放博客程序的地方,以地理位置划分为内地空间、香港空间和国外空间,内地空间的优点是访问速度快,缺点是需要备案;香港空间访问速度介于内地和国外之间;国外空间访问速度较慢,无需备案。空间的选择看个人情况了,空间大小的话新手几百M足够用了,等以后写的内容多了不够用了再考虑更换。
域名解析
在goDaddy购买了域名后,goDaddy会帮我们解析这个域名,但是goDaddy解析的域名有时会遭到屏蔽,而且解析的速度也不快,因此一般使用DNSPod来进行解析。使用DNSPod有以下三步:
(1)在DNSPod添加记录,注册后添加域名。
(2)修改域名DNS地址为DNSPod的,登录goDaddy网站,点击“My Account”,点击“Domain”右侧的“Launch”,进入域名管理页面,在“NameServers”一栏点击“Set NameServers”,在弹出的对话框中前两个Name Server处分别填写DNSPod的域名服务“F1G1NS1.DNSPOD.NET”、“F1G1NS2.DNSPOD.NET”。
(3)将域名指向主机服务器的ip,即在DNSPod中添加“A记录”,注意要添加带“www”的和不带“www”两个记录。
添加完后见下图:
域名解析完后就可以访问了,此时我们在地址栏输入域名后可以看到主机空间上的信息,接下来的事情就是安装WordPress了。
注:相关网站建设技巧阅读请移步到建站教程频道。
安装WordPress
不同的主机空间有不同的虚拟主机控制系统,安装的过程也不尽相同,但是步骤都是差不多的,我购买的主机空间使用的是cPanel面板,下面就针对cPanel安装wordpress做个简略的介绍。
(1)登录cPanel面板,找到“数据库”-“MySQL数据库”,创建一个数据库,然后创建用户,将用户添加进数据库,勾选“所有权限”,点击“更改”完成。
(2)上传WordPress,从WordPress网站下载最新的WordPress中文版,回到cPanel首页,点击“文件”-“文件管理器”,选择“Web Root”后点击“Go”,选择“上传”,选择刚才下载的压缩包上传。上传完后回到根目录选择压缩包,点击“解压缩”,解压缩完成后在根目录多了一个wordpress的目录,进入这个目录,点击“全选”,然后点击“移动文件”,去掉目录中的wordpress,将文件移动到根目录下。
(3)设置Wordpress基本信息,在浏览器访问你的域名,跟着提示点按钮,直到出现输入数据库信息的页面,输入之前创建的数据库信息,至此Wordpress就安装完成了。
安装WordPress主题
wordpress安装完成后,需要给博客安装一个主题,也就是我们的页面模板,进入wordpress的管理页面,选择“外观”-“主题”,点击“安装主题”选择主题安装,也可以上传下载其他主题,最好的免费官方主题可以在这里看到:Free Theme。
设置固定链接
固定链接是指文章的url显示,默认是问号和数字,修改成自定义结构“/%postname%/”可以更好的让搜索引擎找到你的文章。
安装插件
为了更好的使用WordPress,一些好的插件是必不可少的,下面罗列出个人使用中的一些插件。
Akismet
Akismet插件可以帮助清除大量的垃圾留言和评论,保持博客的清洁,使用该插件需要用到API key,可以向主机提供商索要。
WP Super Cache
优秀的缓存插件,可以将博客静态化,一方面能够提高SEO排名,另一方面可以提高博客的访问速度,缓解服务器压力。
Google xml Sitemaps
很好的SEO插件,让搜索引擎更好的收录你的站点。
Dynamic To Top
点击回到顶部,文章比较长时很实用,可以自定义显示效果。
WordPress Related Posts
此插件在每篇文章下显示相关文章或随机文章,有利于博客的SEO。
WP-PageNavi
很不错的分页插件,加速快速浏览博客的文章。
Smart Archives
文章存档导航插件,装好插件后,新建一个页面,在页面的内容区输入“【smart_archives】”(括号修改为英文的中括号),保存,然后新建一个菜单,添加该页面,一个不错的文章存档菜单就完成了。
图片存储
新手搭建的博客,一般主机空间容量不大,如果文章中图片较多的话,图片存储就成了问题。寻找一个稳定易用的图床,方便图片的使用和存储,是应该重点关注的事情。这里推荐一个优秀的国外免费图床:photobucket。
photobucket在国外非常有名,相当稳定,国内访问速度也很不错。免费支持图片外链,提供500M的图片空间,每月10G的图片访问流量,对个人博客图片存储来说这些功能就足够了。此外还有一个十分重量级的特性,就是上传的图片不会改变图片名称,正是由于这个特性让我选择了photobucket。
为什么这个特性如此重要呢?
举个例子说明一下,假设我上传了一张图片,该图片的名称是wp.jpg,图片的外链地址是,同时我在DropBox和本地也备份了一份该图片,目录结构跟相册中的一致。如果photobucket访问不了的话,博客中的图片就无法显示了,此时我只需要上传图片到新的服务器,然后去数据库批量修改图片的链接为新的服务器的图片存放地址,就可以恢复所有图片的显示了。
添加网站图标
网站图标是显示在URL最前面的小图标,可以进行自定义,获取图标最简单的办法是到网站Favicon.cc下载,或者亲自做一个,网站图标建议使用.ico文件格式。
下载图标后,上传至主机的根目录public_html下,然后进入WordPress后台管理页面,选择“外观”-“编辑”,打开“head.php”,添加下面的代码(确保图标名称为favicon.ico):
<linkrel=”shortcut icon” href=”favicon.ico”>
保存后刷新页面就可以看到图标了。
如何在wordpress 3.0中使用自定义分类法
WordPress 3.0五大新特征是WordPress为了迈向一个成功的内容管理系统努力的印证。之前,我们向大家介绍过WordPress3.0的新功能,自定义发布内容的类型,这篇文章将继续给大家讲一下WordPress3.0另一个比较突出的新功能,自定义分类法。什么是自定义分类法函数,它的实用性表现在哪里?究竟该如何使用?请看下面的教程:
什么是自定义分类法函数?
分类法函数顾名思义就是使用不同的方法来对事物进行分类的函数。大家都知道按照不同的分类标准,对某种事物的分类就会大相径庭,本教程将以台式电脑为例,依据下面完全不同的标准来分其结果就不一样:
随机存储的容量
硬盘驱动器的大小
CPU速度
CPU类型
安装的操作系统
等等
WordPress分类法函数历史简介
类别分类
WordPress2.3之前的版本只有一个最为普通的分类法函数,
叫做文章的“类别(Category)”。这个对于博客来说也还算过得去,因为你可以创建一个顶层分类“台式电脑”,一个子分类“RAM,”它同样也可以
有子子分类:“小于1 GB,”“1 GB,”“2 GB到4GB,”
等等。“台式电脑”下也可以创建一个叫做“操作系统的”第二个子分类,它下面的子子分类为“Windows XP,”“Mac OS,”“Red
Hat,”“Ubuntu,”等等。
当某种系统允许你将分类进行再次分为各种子分类,我们称之为层级结构。在WordPress2.3之前的系统里,你所能做到最好的就是创建一个庞大的分类层级,其中最高层代表最大的分类组。
标签分类法
WordPress2.3又增加了一种分类法,叫做标签,之前的分类通常都是事先想好了,具体到网站上内容的分类,而标签显得更加自由,可以说是一种即兴分类内容的方法。
举个例子,在写一篇关于某个台式电脑的文章时,标签允许制作输入一个或多个关键词,如“游戏”、“tivo功能”
、“嘈杂风扇”等等。像这些关键词可能并不适合于运用于整个网站内容的分类中,但是对某篇文章来说却是提供了另一种分类。网站访客以后就可以非常轻松找到
所有标记为“tivo功能”的文章。不过,标签的自由性却无法帮助我们创建一个固定的依据如操作系统、CPU类型值而做出的分类系统。因为标签是一维的,
不容许任何层级结构。
单级自定义分类法
WordPress2.8下,通过稍微修改网站的代码你可以添加自定义分类方案。这样你可以创建一个包含所有“操作系统”的文章列表,并与另一个包含所有
“随机存储器”的文章列表单独分开,当然还可以创建其他类似的列表。不过,它却无法像常见的“类别”分类法拥有内在的层级结构。
完全层次自定义分类法
最后,WordPress3上才可以拥有完全层级的自定义分类法。你将会发现这个完全层级自定义分类是多么强大,就拿操作系统来说,你可以将所有不同的
Windows变种放置到Windows父类别下。这样用户选择Windows操作系统的时候就可以看到所有相关的文章,而如果他们想只查找
Windows xp电脑相关的信息就可以选择Windows XP下的文章。
创建一个自定义分类法
编辑主题functions.php文件
WordPress3无法在管理后台创建自定义的分类法。如果不使用插件初次定义一个自定义分类法时,你将需要在主题 functions.php文件里添加点代码,其实也不难,跟着下面的指示就可以了。
在主题目录里找到“functions.php”文件,假设你使用的是WordPress3.0的默认主题“twentyten”,WordPress是安装在一个叫做“wp.”的目录下,那么functions.php文件的路径就是:
[website_root]/wp/wp-content/themes/twentyten/functions.php.
在代码中添加分类法
仍然以台式电脑为例,我们需要单独添加“随机存储器”、“硬盘驱动器”和“操作系统”这样的分类。在这里,仅仅是添加了分类法本身,也就是说设定完之后它们就像是一个“空的容器”,而你需要通过管理面板那命名管理不同分类,如“Windows XP”。
步骤一:使用一个函数创建所有的分类
首先,需要创建一个函数来创建所有需要的分类。这个函数叫做“build_taxonomies”,在functions.php文件的底端添加这个函数:
function build_taxonomies(){//定义分类法的代码将写在这里}
步骤二:定义分类法
接着,对于每个需要创建的分类法,我们需要启用某个WordPress函数以及正确的参数。下面就是该函数以及它相关的重要参数的解释。
register_taxonomy('internal_name','object_type', array('hierarchical'=>
{true|false},'label'=>'Human Readable Name','query_var'=>
{true|false},'rewrite'=>{true|false}));
internal_name:在WordPress内部,数据库和模板文件中这个分类法究竟该怎么称呼就是靠这个函数来实现的。
object_type:什么类型的内容才可以用这个分类法进行分了呢?可能的值有:“文章(post),页面(page)以及链接(link)”。
接着就是一组可选择的参数。本教程就使用最为重要的几个参数,其他参数大家也可以在官方的引用函数/ register_taxonomy Codex页面上找到。我们将使用到的参数有:
hierarchical:如果设置为”true”的话,意味着此分类法拥有的层级功能,就像WordPress“类别”的分类一样。反之,如果设置为‘false’,那么它就会像标签一样灵活没有分层的制约。
label:这是一个对用户可见的用户标记此分类法的一个标记。
query_var:如果设置为‘true’,那么选择该分类法后,我们可以要求WordPress为我们选择相关的文章,例如,依据操作系统分类法,如果选择“Windows”,WordPress系统就会为你列出所有Windows下的文章。
rewrite:如果设置为‘true’,在浏览一个页面时,WordPress将会使用友好的URL地址。例如,选择Windows操作系统之后列出的文章列表页面的URL地址将会是这样的:
添加操作系统分类法的代码如下:
register_taxonomy('operating_system','post', array('hierarchical'=> true,
'label'=>'Operating System','query_var'=> true,'rewrite'=> true));
请在前面提到的“build_taxonomies”函数里添加上面的代码。
更多信息:
参阅这里
第三步:调用Taxonomy-Creating函数
我们还需要在“functions.php”文件里添加几行代码,这样“build_taxonomies”函数才可以真正执行,
add_action('init','build_taxonomies', 0);
你可以在任何地方加这个代码,不过通常还是写在需要调用的函数前面比较好,代码就变成这样了:
//自定义分类法代码add_action('init','build_taxonomies', 0);
function build_taxonomies(){ register_taxonomy
('operating_system','post', array('hierarchical'=> true,'label'=>
'Operating System','query_var'=> true,'rewrite'=> true));}
给新的分类法添加类别
正确在“functions.php”添加了“操作系统”这个分类法之后,在管理后台的“文章”选项就应该会出现一个新的“操作系统”分类条目,点击该分类法名称,你就可以添加编辑所需要的类别。
像上图所示添加完所需的类别之后,你就可以像常见的文章分类目录一样对操作系统这个分类进行编辑。
添加更多分类法
如果你需要添加“随机存储器”和“硬盘驱动器”分类法,只要按照上面“操作系统”的例子做,并在functions.php文件加入下面的代码:
register_taxonomy('ram','post', array('hierarchical'=> true,
'label'=>'RAM','query_var'=> true,'rewrite'=> true));
register_taxonomy('hard_drive','post', array('hierarchical'=> true,
'label'=>'Hard Drive','query_var'=> true,'rewrite'=> true));
完成之后,functions.php文件里的代码应该像下面这样:
//自定义分类法代码 add_action('init','build_taxonomies', 0);
function build_taxonomies(){ register_taxonomy('operating_system','post',
array('hierarchical'=> true,'label'=>'Operating System','query_var'=> true,
'rewrite'=> true)); register_taxonomy('ram','post', array('hierarchical'=> true,
'label'=>'RAM','query_var'=> true,'rewrite'=> true));
register_taxonomy('hard_drive','post', array('hierarchical'=> true,
'label'=>'Hard Drive','query_var'=> true,'rewrite'=> true));}
使用新的分类法发布文章
在创建一篇新的文章时,你就会发现在编辑文章的页面会出现新的分类法选项,你就可以旋转任何你需要使用到的分类。
显示文章的不同分类法
到目前为止所做的一切对于网站的访客来说并没有太大的改善。我们希望能够显示某篇文章依据某种分类法所归属的类别,就像文章的类别和标签那样显示出来。
为了实现这点,我们还需要做一点点改善。
在各个分类法的页面显示它们下面的类别
在twentyten以及其他很多主题中,在一篇文章的文本下方会显示该文章所属的类别和标签。所以,下面我们打算如果某篇文章有使用了自定义的分类法对它进行分类的话,那么就在类别和标签的前面加上依据自定义分类法它所归属的分类。
为了实现这一点,我们需要对“single.php”模板文件进行一点修改,通常显示单篇文章都需要调用这个模板文件。single.php文件的路径
是: [website_root]/wp/wp-content/themes/twentyten/single.php.
第一步:找到添加代码的地方
打开single.php文件,找到下面这行代码:
<div class=”entry-utility”>
它的前面是:
<div id=”nav-below”>
In twentyten主题里面,div里包含了当前文章的所属类别、标签、永久链接以及其他数据。我们将在这个div的前面添加自定义分类的信息。
第二步:获取当前文章的分类法信息
Populate some variables for holding the taxonomy information output and
the different taxonomy information we may expect to find.
<?php//如果有自定义分类法信息就显示
//创建输出的内容$taxo_text=””;
//变量来存储所有可能的分类法列表
//检查“操作系统”这个类别
$os_list= get_the_term_list($post->ID,'operating_system','
<strong>Operating System(s):</strong>',',','');
在这里,需要调用WordPress函数“get_the_term”以及下面的参数:
$post->ID:当前文章的ID
‘operating_system’:我们的目标自定义分类,通过它来查询当前文章是否有被定义为“操作系统”分类法下的任何类别。
‘Operating System(s)’:如果得到数值返回,我们需要在它的前面加上这个字符串。
‘,‘:如果返回多个数值,我们需要用这个符号来分隔开来。
”:如果没有返回任何数值,我们希望在后面加上这个字符串。这样,结果后面就不需要添加任何东西。
同样地我们可以对其他两个分类法进行处理:
$ram_list= get_the_term_list($post->ID,'ram','<strong>RAM Option(s):
</strong>',',','');$hd_list= get_the_term_list($post->ID,'hard_drive','
<strong>Hard Drive Option(s):</strong>',',','');
更多信息:
参阅这里
第三步:对类别的结果进行格式化(如果有)
先查询是否有这三个分类法下的类别。如果有的话,将这些类别信息以及字符串添加到输出结果中输出。
// Add OS list if this post was so tagged if(''!=$os_list)
{$taxo_text.=”$os_list<br/>\n”;}
// Add RAM list if this post was so tagged if(''!=$ram_list)
{$taxo_text.=”$ram_list<br/>\n”;}
// Add HD list if this post was so tagged if(''!=$hd_list)
{$taxo_text.=”$hd_list<br/>\n”;}
第四步:显示类别结果(如果有)
检查经过以上步骤是否会有分类法信息需要输出。如果分类法信息存在,我们将会通过类别div来输出结果。
// Output taxonomy information if there was any
// NOTE: We won't even open a div if there's nothing to put inside it.
if(''!=$taxo_text){?><div class=”entry-utility”>
<?php echo$taxo_text;?></div><?}// endif?>
第五步:检查结果
查看文章,你将会发现所有的自定义分类法下的类别都会在文章的下方显示。
通过自定义分类法的类别浏览文章列表
通过上面的几个操作,现在每篇文章如果它们有被分类到哪个自定义分类法下的某个类别,那么相关的类别都会显示出来了。并且列出自定义分类法的类别的同时还
会有一个链接能将你转到到某个类别下的所有文章列表页面。例如,点击操作系统分类法旁边的“Mac OS”链接,理论上所有的“Mac
OS”类别的所有文章列表都将会呈现在你的眼前。
但是,在WordPress3.0中并没有像理论那样完美,我们还需要制作一个自定义的模板文件才能让文法归档成为可能。在WordPress中,读者已
经可以对指定某个 category和某个标签的所有文章进行浏览,当然我们也希望读者能够将所有自定义分类法下某个类别的文章也都能全部一览无余。
为了实现这一点,我们需要创建一个叫做“taxonomy.php”的模板文件,当需要列出自定义分类法下面某个类别的文章时,可以随时使用这个文件。
第一步:
打开“category.php”模板文件,复制它的内容并将这些内容粘贴到一个新创建的命名为“taxonomy.php”的文件中,保存这个taxonomy.php到主题目录下:
[website_root]/wp/wp-content/themes/twentyten/taxonomy.php.
第二步:获取当前分类法类别的相关信息
我们需要在taxonomy.php文件里能够获取被列出的分类法相关的信息。可能需要知道分类法下某个类别的名称以及描述。
只要在<?php get_header();?>下方,添加下面的代码:
$term= get_term_by('slug', get_query_var('term'),
get_query_var('taxonomy'));
第三步:显示类别名称和描述
有必要将页面的名称做些修改让访客知道他们在看的是什么样的内容。由于我们最开始也是从category.php模板文件着手的,我们可以将用与打印分类名称的代码做些修改,就可以显示我们需要的页面名称,甚至是描述。
从category.php文件中修改下面的代码:
printf( __('Category Archives:%s','twentyten'),'<span>'.
single_cat_title('', false).'</span>');
将其改成:
printf( __('Posts classified under:%s','twentyten'),
'<span>'.$term_name.'</span>');
这就修改了刚开始的静态文字,然后插入类别的名称。
添加下面的代码:
if(''!=$term_descr){ echo”<p>$term_descr</p>\n”;}
如果这个类别有描述,那么就会在标题的下方显示描述内容。
再完成对taxonomy.php的修改之后,访问下某篇授予某一个自定义分类法下的某个类别的文章,你将会看到文本的下方会有自定义类别显示,只要点击这些类别你就可以看到此类别的文章列表了。








