你未必知道的query_posts使用技巧

编程之家收集整理的这篇文章主要介绍了你未必知道的query_posts使用技巧编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

搜索热词

Query_posts语句是wordpress最实用的语句之一。 正是在query_posts的作用下,wordpress的Loop循环才能够调用显示所有文章内容。 Query_posts的魅力在于,它可以根据你的要求,通过各种各样的方式灵活地检索并过滤日志或页面

你可以用query_posts进行简单的文章抓取,可以只抓取一篇,也可以抓取上百篇。 而说到复杂点的用法,你甚至可以利用query_posts来查询某一分类目录下某个作者发表的、带有某个标签的特定数量文章….

wordpress中文手册上有对query_posts函数的介绍,不过下面要介绍的是一些更详细更有趣的用法

1.注意事项
首先要注意的是,使用query_posts的最好方法….就是不要用它。 Query_posts中说到: query_posts函数仅用于修改主页循环(Loop),而不是一种在页面生成次级循环的手段。如果你希望在主循环外另外生成循环,应该新建独立的WP_Query对象,用这些对象生成循环。在主循环外的循环上使用query_posts会导致主循环运行偏差,并可能在页面显示出你不希望看到的内容

最恰当的方法是使用query查询类。

<?PHP
$query = 'posts_per_page=10';
$queryObject = new WP_Query($query);
// The Loop...
if ($queryObject->have_posts())
{ while ($queryObject->have_posts())
{ $queryObject->the_post(); the_title(); the_content();
} } ?>

2. 不同调用方法
传统的文章调用方法是以查询字符串形式传递query_posts参数(如variable1=value1&variable2=value2&...),不过后来有了新方法——用数组来设置查询参数。

<?PHP
// GOOD
// select 10 posts from category 1
$query = 'posts_per_page=10&cat=1';
$queryObject = new WP_Query($query);
// The Loop...
// BETTER
$query = array ( 'posts_per_page' => 10,'cat' => 1 );
$queryObject = new WP_Query($query);
// The Loop...
?>当然,使用哪种方法完全由个人习惯决定,不过我认为用数组更为方便,原因如下:

便于阅读
可以利用if语句更轻松地给数组添加条件,以动态生成查询
一些查询参数(某些使用频率较低的参数,如分类参数和标签参数)需要被传递数组
你可以将函数调用以参数的形式传递

3. 关于日志顺序
默认情况下wordpress日志是按日期顺序排列的,这也是大多数人的需求,不过如果能更改默认的排列顺序那就更好了。 例如你可以随意调用几篇日志,让它们显示侧边栏wordpress 2.9引入了以评论数量多寡给文章排序的功能,这样就可以更方便地向访客显示最受欢迎的文章….不过这里为了使用query_posts,我们假设一下不使用wordpress的这个功能

<?PHP
// select posts ordered by comment_count
$query = 'orderby=comment_count';
$queryObject = new WP_Query($query);
// The Loop...
?>

4. Meta
Post Meta函数的实用性也很强, 我们可以利用下面的代码显示最受欢迎的文章:

<?PHP
// grab posts by post count ordered in descending order
(most votes first)
$query = 'Meta_key=vote_count&orderby=Meta_value&order=DESC';
$queryObject = new WP_Query($query);
// The Loop...
?>

5. 日志? 页面? 附件?
你可以按文章类型调用自己想要的日志、页面或附件。 对附件的调用可能是最有趣但同时被使用频率也是最低的一个。 利用下面的代码(与上文中提到的顺序参数),你就可以根据自己的喜好在网站上显示各种媒体文件了:

<?PHP
// grab 1 random attachment
$query = 'post_type=attachment&orderby=rand&posts_per_page=1';
$queryObject = new WP_Query($query);
// The Loop...
?>

总结

以上是编程之家为你收集整理的你未必知道的query_posts使用技巧全部内容,希望文章能够帮你解决你未必知道的query_posts使用技巧所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢寻找一群志同道合、互帮互助的学习伙伴,可以点击下方链接加入:
编程之家官方1群:1065694478(已满)
编程之家官方2群:163560250(已满)
编程之家官方3群:312128206

相关文章

猜你在找的wordpress相关文章

WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。WordPress是一个免费的开源项
这两段代码可以让你先体验一下WordPress 3.0的菜单样式 首先在functions.php添加如下代码: register_nav_menus( array( 'header-menu' => __( 'Header Menu' ), 'footer-menu' => __( 'Footer Menu' ), ) ); // if no menu pressent fallback to.... used in wp_nav_menu function he…
曾经给大家介绍了在 WordPress 后台移除主题编辑器,今天继续加深,直接关闭 WordPress 后台的文件编辑功能。 在 wp-config.php 添加下面两行代码: define('DISALLOW_FILE_EDIT', true); define('DISALLOW_FILE_MODS',true);
WordPress之iNove主题内容页增加公告栏的方法,导航栏下面默认的公告栏只能在首页显示,只要修改一个文件就可以让它在所有的内容页都显示了。 打开 wp-content hemesinovesingle.php 文件 在 <?php $options = get_option('inove_options'); ?> 下面添加以下内容 <?php if ($options…
在WordPress主题制作中,导航菜单的制作算是一个重点,已经写好导航菜单的HTML代码,放在WordPress主题中如何动态调用呢?本文将给你介绍几种编写PHP代码动态实现导航的方法,本文也将只侧重于动态代码的开发,不会教你如何编写HTML、CSS和Javascript来实现华丽的导航菜单。 WP 3.0自定义菜单…
eShop 和 WP e-Commerc 一样,也是一款功能强大的电子商务插件,几乎可以满足在线销售的各种需求,eShop 还提供给管理员自定义邮件模板功能,当消费者购买成功时会直接发送提醒邮件到其留下的邮箱中,非常人性化。 eShop插件功能: 配置缺货信息 上传下载产品 下载销售数据 多…
在微博中,时间的格式都是显示成:20秒前,1小时前,3天前这样的格式,在前边的教程中,网也有此类的WordPress“个性时间格式”教程,有的站长朋友不太明白如何使用,其实 WordPress 也有一个函数可以把时间显示成这样的格式,这个函数就是:human_time_diff,它有两个参数,一个是…
一直没有把博客备份问题放在心上。前天,小兵问我要个Zblog的文件。并提醒我要备份,我才关心起来。 于是仔细研究了下备份的问题。顺便记录下。 zblog备份的原则就是凡是你修改过的,都需要备份。 1、重点备份: DATA 数据库文件夹 这是你的数据库目录,记录着日志、摘要、评论、留言、…