多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > WordPress > WordPress函數query_posts用法匯總

WordPress函數query_posts用法匯總

來源:程序員人生   發布時間:2014-05-17 15:49:14 閱讀次數:2813次

注:本文適合有WordPress主題制作基礎或對這方面感興趣,并且喜歡動手的讀者閱讀!

最近經常有網友跟我咨詢WordPress函數query_posts的相關用法,說起來query_posts實在是太強大,參數無數,用法更是無數,如果讓我說它的用法,我根本沒法一一說清楚。開始之前,你可以先看看query_posts的官方文檔。不過看文檔對很多人來說可能會很困難,本文將介紹幾種常見的用法,不過一切用法都是從官方文檔中來的,學會看文檔才是王道。

query_posts函數在WordPress主題中是用于控制哪些文章可以出現在主循環中,可能說主循環很多人都不懂,那么舉個例子,首頁、存檔頁的這些文章(包括分頁中的)都是在主循環中的。在不使用query_posts函數控制的情況,首頁、存檔頁等都是按照文章的發布時間列出你博客上所有已發布的文章,而如果你想定義哪些文章可以顯示,哪些文章不顯示,文章按照什么樣的方法排序等,那么你就要用到query_posts函數了,本站首頁的文章排序:隨機閱讀、評論最多和標題排序就是用query_posts函數來實現的。

基本用法:

首先介紹一下如何使用query_posts函數。在主題目錄下找到存檔頁面文件,存檔頁面包括index.php、archive.php等,一般分類頁、標簽頁、日期頁和作者頁等都是用archive.php,具體的WordPress主題文件構成可以看這篇文章:WordPress主題文件構成

確定了你要控制哪個頁面的文章列表,那么我們就可以開始了,比如你想讓首頁的文章按評論數排序,那么index.php中的代碼基本框架就是這樣的:

<?php

// query_posts函數
query_posts('orderby=comment_count');

// 主循環
if ( have_posts() ) : while ( have_posts() ) : the_post();
..
endwhile; else:
..
endif;

// 重置query
wp_reset_query();

?>

其實你要做的就是在index.php中查找if (have_posts())或while (have_posts()),在前面添加query_posts函數即可。不過以上方式可能會導致首頁無法分頁,那你可以將query_posts函數改成這樣的行式:

// 下面這一行代碼是必須的,不然你的首頁不能分頁
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
// 這里以下面的方式添加query_posts參數,具體參數可以參加官方文檔
'orderby' => comment_count,
'paged' => $paged
);
query_posts($args);

下面是一些常見的query_posts函數用法,你可以直接用到你的主題中。

一、只顯示含有某個自定義字段的文章

如果你想只顯示添加了某個自定義字段的文章,并按照這個字段的值來對文章排序,那么你可以參加這篇文章:WordPress手動修改文章排列順序

其實這種方式你可以看成怎樣只顯示我推薦的文章,那么含有這個自定義字段的文章就是推薦文章。

二、怎樣讓某分類的文章不顯示/顯示

如果你不想讓某分類的文章出現在主循環中,那么你可以使用query_posts添加參數category__not_in即可:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
// 2, 6就是你不想顯示的分類ID,多個用半角逗號隔開
'category__not_in' => array(2, 6),
'paged' => $paged
);
query_posts($args);

如果只想讓顯示某個分類的文章,可以將category__not_in改成category__in。同理,如果不顯示某標簽下的文章,可以將category__not_in改成:tag__not_in,或者只想讓顯示某個標簽下的文章,可以將category__not_in改成tag__in,后面跟著標簽的ID即可。

三、如何對文章進行排序

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
// 以下代碼中的title就是orderby的值,按標題排序
'orderby' => title,
'paged' => $paged
);
query_posts($args);

    根據orderby的值不同,可以讓文章按照很多種方式進行排序,下面是列舉幾個常見的值及其對應的排序方式:title:按標題;date:按發布日期;modified:按修改時間;ID:按文章ID;rand:隨機排序;comment_count:按評論數

四、只顯示相應ID的文章

如我只想顯示ID為2,4,6的文章,可以使用以下代碼:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
// 以下代碼中的2,4,6就是文章的ID
'post__in' => array(2,4,6),
'paged' => $paged
);
query_posts($args);

如果不想顯示2,4,6這幾篇文章,可以將 post__in 改成 post__not_in 。另外如果只想顯示置頂文章,那么可以將array(2,4,6)改成get_option('sticky_posts'),這段代碼會自動給你填充所有置頂文章的ID。

五、讓置頂文章不置頂

如果你不想讓置頂文章顯示在頂部,而是讓它們安裝正常的順序排列,那么可以使用以下代碼:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args=array(
'paged' => $paged,
'caller_get_posts' => 1
);
query_posts($args);

六、列出所有狀態的文章

WordPress的文章狀態有很多種,包括已發布、草稿、已刪除、私人的、定時發布的等等,如果你想將這些文章都統統顯示出來,那么可以這樣:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'post_status' => array('publish', 'pending', 'draft', 'future', 'private', 'trash'),
'paged' => $paged
);
query_posts($args);

post_status參數可以控制具體的文章狀態,值包括pending(待審)、publish(已發布)、draft(草稿), future(定時), private(私有), trash(已刪除)。

七、控制文章的數量

如果你想控制要顯示的文章數量,可以使用showposts參數:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
// 控制只顯示10篇文章,如果將10改成-1將顯示所有文章
'showposts' => 10,
'paged' => $paged
);
query_posts($args);

如果你只是想控制首頁、分類頁等每各分頁顯示的文章數量,可以在WordPress管理后臺 – 設置 – 閱讀那里設置博客頁面至多顯示多少篇文章。

原文:http://www.ludou.org/wordpress_query_posts.html

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
為碼而活
積分:4237
15粉絲
7關注
欄目熱點
關閉
程序員人生
主站蜘蛛池模板: 免费看成人毛片日本久久 | 午夜写真福利视频在线观看 | 秋霞理论在一l级毛片 | 欧美一区日韩精品 | 久操免费在线 | 亚洲国产精品久久久久久 | 被公侵犯肉体中文字幕一区二区 | 看大片免费网站 | 亚洲人成在线观看男人自拍 | 美女毛片视频 | 东京干男人都知道的网站 | 亚洲欧美日韩国产精品网 | 欧美e片成 人 在线播放乱妇 | 日韩精品一区二区三区中文在线 | 正在播放国产露脸做91 | 亚洲天堂精品视频 | 亚洲精品国产网红在线一区 | 欧美精品一区二区三区免费观看 | 欧美xxxxx精品 | a∨79成人网 | 国产真实偷乱小说 | 一级中文字幕乱码免费 | 春色视频免费版高清在线观看 | 亚洲爱爱久久精品 | 最新中文字幕在线资源 | 国产jiyzz视频在线看 | 91久色视频 | 可以免费观看的黄色网址 | 最近中文字幕mv免费看 | 亚洲欧美不卡中文字幕 | 国产成人在线免费视频 | 久久精品无码一区二区日韩av | 宇都宫紫苑ed2k | 伊人插 | 欧美性视频在线播放 | 成人在线观看视频免费 | 在线观看国产情趣免费视频 | 亚洲国产精品综合欧美 | 日本一区二区三区有限公司 | 三级c欧美做人爱视频 | www成人在线观看 |