探索WordPress get_posts功能
钥匙要点
-
WordPress中的get_post()函数用于通过应用自定义过滤器并根据一组参数对最终结果进行排序来检索数据库中的帖子。它返回一个wp_post对象的数组,每个对象代表单个帖子。
- get_post()函数优先于WP_QUERY对象,因为后者会改变主循环,并可能引起站点问题。 get_posts()函数和get_pages()函数都检索帖子,但参数名称,值和检索的方法有所不同。 >
- get_posts()函数接受一系列参数以应用自定义过滤器并排序结果。这些参数包括post_per_page,page,sax_query,orderby,order,reford,meta_key,meta_value,post_type和post_status。 > get_post()函数可用于检索最受欢迎的帖子,随机帖子,具有匹配的元密钥和值的帖子以及带有自定义分类名称的自定义帖子类型的帖子。然后将返回的结果循环进行进一步使用。
- >
- >许多WordPress插件通过自定义排序顺序,基于特定的元密钥或分类法检索帖子,从数据库中检索帖子。您是否曾经想过这些插件如何在不编写任何SQL查询的情况下检索自定义的帖子列表?在本教程中,我们将学习如何做到这一点。 >
>在本文中,我们将探索get_posts()函数,其中一些示例有关如何在自己的项目中使用它。我们还将介绍此功能的一些典型用例,以及它与wp_query对象和get_pages函数的不同。
get_posts()函数是什么?
get_posts函数。此功能基本上用于通过应用自定义过滤器并根据一组参数对最终结果进行排序来检索数据库中的帖子。
get_post()函数返回WP_POST对象的数组。每个WP_POST对象代表一个单独的帖子。
>内部get_posts使用wp_query对象根据传递的参数集来构建和执行SQL查询。注意:帖子是指帖子,页面和自定义帖子类型。
为什么不直接使用wp_query对象?
>插件使用get_posts函数,而不是wp_query对象,因为使用wp_query对象直接改变了主循环(即全局$ wp_query变量),这会导致站点问题。
get_posts()和get_pages()函数之间有什么区别?
>它们两个都用于从WordPress数据库中检索帖子,但是,以下是它们之间的一些区别:-
它们之间的几个参数名称和值之间有所不同。尽管无论参数的名称如何
- get_pages()函数当前不基于meta_key和meta_value参数检索帖子。
- get_pages()函数不使用wp_query对象。相反,它直接构建和执行SQL查询。
- get_posts()函数参数
get_post函数仅将一个参数作为数组。阵列包含用于应用自定义过滤器的不同参数并对结果进行排序。>
这是一个代码示例,该示例显示了如何调用此函数和可用的各种参数:有更多参数可用,但是这些参数是最常用的参数。让我们看一下这些参数:
<span><span><?php </span></span><span> </span><span><span>$args = array( </span></span><span> <span>"posts_per_page" => 5, </span></span><span> <span>"paged" => 1 </span></span><span> <span>"tax_query" => array( </span></span><span> <span>array( </span></span><span> <span>"taxonomy" => "category", </span></span><span> <span>"field" => "slug", </span></span><span> <span>"terms" => "videos,movies", </span></span><span> <span>) </span></span><span> <span>), </span></span><span> <span>"orderby" => "post_date", </span></span><span> <span>"order" => "DESC", </span></span><span> <span>"exclude" => "1123, 4456", </span></span><span> <span>"meta_key" => "", </span></span><span> <span>"meta_value" => "", </span></span><span> <span>"post_type" => "post", </span></span><span> <span>"post_status" => "publish" </span></span><span><span>); </span></span><span> </span><span><span>$posts_array = get_posts($args); </span></span><span> </span><span><span>?></span></span>
> page:允许我们在使用posts_per_page参数时在一组帖子之间导航。它用于分页。例如:假设posts_per_page是10,结果中有20个帖子,然后如果您分配了第2个,则返回最后10个帖子。
- >
- 顺序:指定订单参数的上升或降序。可能的值是“ desc”或“ asc”。 >
- 排除:它获取逗号分隔的帖子ID列表,该列表将在数据库搜索中排除。
- > meta_key和meta_value:如果您仅提供元数据,则将返回具有密钥的帖子。如果您还提供meta_value,则返回了与meta_key的meta_value匹配的帖子。 >
- post_type:根据帖子,页面或自定义帖子类型检索内容。请记住,默认的post_type仅设置为显示帖子,而不设置为页面。 >
- > POST_STATUS:根据帖子状态检索帖子。可能的价值是:“发布”,“待处理”,“草稿”,“未来”,“任何”或“垃圾”。 >
- > wp_post对象
- get_post函数返回包含WP_POST对象的数组。这是WP_POST对象的重要属性:
-
- ID:帖子的ID >
- > post_author:帖子的作者名称
- post_type:post 的类型
- post_title:帖子的标题 >
- > post_date:发布的日期。格式:0000-00-00 00:00:00
- post_content:帖子的内容。
- post_status:职位的状态 >
- comment_count:帖子的注释数
get_posts
的示例>让我们使用get_posts函数查看一些示例。
>最受欢迎的帖子
>如果要在网站上显示最讨论的帖子的顶部N号,则可以使用get_posts检索它们。这是一个示例:
<span><span><?php </span></span><span> </span><span><span>$args = array( </span></span><span> <span>"posts_per_page" => 5, </span></span><span> <span>"paged" => 1 </span></span><span> <span>"tax_query" => array( </span></span><span> <span>array( </span></span><span> <span>"taxonomy" => "category", </span></span><span> <span>"field" => "slug", </span></span><span> <span>"terms" => "videos,movies", </span></span><span> <span>) </span></span><span> <span>), </span></span><span> <span>"orderby" => "post_date", </span></span><span> <span>"order" => "DESC", </span></span><span> <span>"exclude" => "1123, 4456", </span></span><span> <span>"meta_key" => "", </span></span><span> <span>"meta_value" => "", </span></span><span> <span>"post_type" => "post", </span></span><span> <span>"post_status" => "publish" </span></span><span><span>); </span></span><span> </span><span><span>$posts_array = get_posts($args); </span></span><span> </span><span><span>?></span></span>
登录后复制登录后复制>在这里,我们使用订单参数根据注释数量对帖子进行排序,并检索前10个帖子。
随机帖子在上面的示例中,我们将值rand传递给了order_by参数。<span><span><?php </span></span><span> <span>$args = array("posts_per_page" => 10, "orderby" => "comment_count"); </span></span><span> <span>$posts_array = get_posts($args); </span></span><span> <span>foreach($posts_array as $post) </span></span><span> <span>{ </span></span><span> <span>echo "<h1>" . $post->post_title . "</h1><br>"; </span></span><span> <span>echo "<p>" . $post->post_content . "</p><br>"; </span></span><span> <span>} </span></span><span><span>?></span></span>
登录后复制>
>具有匹配的元密钥和值>的帖子
>我们可能想检索所有具有特定元密钥的帖子和分配的值。例如:有些博客都有每篇文章的审稿人。我们可能想检索特定审稿人审查的文章。>
>在这里,我们正在检索“ NarayanPrusty”审查的所有帖子。我们假设审阅者名称是通过每个帖子的元密钥“审稿人”存储的。<span><span><?php </span></span><span> <span>$args = array("posts_per_page" => 1, "orderby" => "rand"); </span></span><span> <span>$posts_array = get_posts($args); </span></span><span> <span>foreach($posts_array as $post) </span></span><span> <span>{ </span></span><span> <span>echo "<h1>" . $post->post_title . "</h1><br>"; </span></span><span> <span>echo "<p>" . $post->post_content . "</p><br>"; </span></span><span> <span>} </span></span><span><span>?></span></span>
登录后复制>
>自定义帖子类型带有自定义分类法在此示例中,我们正在检索属于“插件”和“主题”自定义分类法的定制帖子类型的帖子。<span><span><?php </span></span><span> <span>$args = array("posts_per_page" => -1, "meta_key" => "reviewer", "meta_value" = "narayanprusty"); </span></span><span> <span>$posts_array = get_posts($args); </span></span><span> <span>foreach($posts_array as $post) </span></span><span> <span>{ </span></span><span> <span>echo "<h1>" . $post->post_title . "</h1><br>"; </span></span><span> <span>echo "<p>" . $post->post_content . "</p><br>"; </span></span><span> <span>} </span></span><span><span>?></span></span>
登录后复制结论
>在本文中,我们看到了get_posts函数如何工作,它支持的各种参数,循环循环返回结果以及一些示例用例。 GET_POSTS功能是最常用的WordPress函数之一,希望您现在可以开始使用自己的项目。
>>关于WordPress GET_POSTS函数的常见问题(FAQ)
> wordpress中的get_posts和wp_query之间有什么区别?
get_posts和wp_query均用于从WordPress数据库中检索帖子。但是,它们的使用和灵活性有所不同。 get_posts是一个更简单的功能,非常适合初学者,也是您只需要检索特定帖子的情况。另一方面,WP_QUERY更强大和灵活。它允许更复杂的查询,并使您对WordPress循环有更多控制权。虽然get_posts更易于使用,但WP_QUERY提供了更高级的功能来自定义查询。
>如何修改get_posts返回的帖子数?默认情况下,将其设置为5。如果要检索所有帖子,则可以将“ numberPosts”设置为-1。例如,要获取10篇文章,您将使用:get_posts(array('numberposts'=> 10));
>我可以使用get_posts检索自定义帖子类型吗?可以使用get_post检索自定义邮政类型。您只需要在查询中指定“ post_type”参数。例如,如果您具有称为“产品”的自定义帖子类型,则可以使用以下方式检索以下帖子(array('post_type'=>'products'));
>我如何对返回的帖子进行分组通过get_posts?>您可以通过使用'orderby'和'order'参数对get_post返回的帖子进行分类。 “ Orderby”确定要通过排序的字段,“顺序”确定排序顺序(ASC的上升和下降的降序)。例如,要按升序按标题对帖子进行排序,您将使用:get_posts(array('orderbod'=>'title','order'=>'asc'));要从特定类别检索帖子?
是的,您可以使用get_post从特定类别检索帖子。您只需要在查询中指定“类别”参数。例如,要从ID 3获得类别的帖子,您将使用:get_post(array('category'=> 3));
如何使用get_post从多个类别中检索帖子? >
>要从多个类别检索帖子,您可以将类别ID数组传递到“类别”参数。例如,要获取具有IDS 3和4的类别的帖子,您将使用:get_posts(array('category'=> array(3,4)));>我可以使用get_posts检索特定作者的帖子?是的,您可以使用get_posts检索特定作者的帖子。您只需要在查询中指定“作者”参数。例如,要使用ID 1获取作者的帖子,您将使用:get_posts(array('rution'=> 1)); >我如何检索使用get_posts包含特定元值的帖子?要检索包含特定元值的帖子,您可以使用'meta_key'和'meta_value'参数。例如,要获取具有“颜色”元密钥和“蓝色”的元值的帖子,您将使用:get_posts(array('meta_key'=>'color','meta_value'=>'blue') );我可以使用get_posts检索具有特定标签的帖子吗?您只需要在查询中指定“标签”参数。例如,要获取具有标签“ wordpress”的帖子,您将使用:get_posts(array('tag'=>'wordpress’)); >如何使用get_posts从特定日期范围内检索帖子?
>
从特定日期范围内检索帖子,您可以使用'date_query'参数。此参数接受数组数组,每个内部数组都定义一个日期查询子句。例如,要从2020年1月开始获取帖子,您将使用:get_posts(array('date_query’=> array(array(array'=> 2020,'noter''=> 1)))));>>>>>
以上是探索WordPress get_posts功能的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

博客是人们在网上表达观点、意见和见解的理想平台。许多新手渴望建立自己的网站,却因担心技术障碍或成本问题而犹豫不决。然而,随着平台不断发展以满足初学者的能力和需求,现在开始变得比以往任何时候都更容易。 本文将逐步指导您如何建立一个WordPress博客,从主题选择到使用插件提升安全性和性能,助您轻松创建自己的网站。 选择博客主题和方向 在购买域名或注册主机之前,最好先确定您计划涵盖的主题。个人网站可以围绕旅行、烹饪、产品评论、音乐或任何激发您兴趣的爱好展开。专注于您真正感兴趣的领域可以鼓励持续写作

有四种方法可以调整 WordPress 文章列表:使用主题选项、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代码(在 functions.php 文件中添加设置)或直接修改 WordPress 数据库。

最近,我们向您展示了如何通过允许用户将自己喜欢的帖子保存在个性化库中来为用户创建个性化体验。您可以通过在某些地方(即欢迎屏幕)使用他们的名字,将个性化结果提升到另一个水平。幸运的是,WordPress使获取登录用户的信息变得非常容易。在本文中,我们将向您展示如何检索与当前登录用户相关的信息。我们将利用get_currentuserinfo(); 功能。这可以在主题中的任何地方使用(页眉、页脚、侧边栏、页面模板等)。为了使其工作,用户必须登录。因此我们需要使用

您想了解如何在父分类存档页面上显示子分类吗?在自定义分类存档页面时,您可能需要执行此操作,以使其对访问者更有用。在本文中,我们将向您展示如何在父分类存档页面上轻松显示子分类。为什么在父分类存档页面上显示子分类?通过在父分类存档页面上显示所有子分类,您可以使其不那么通用,对访问者更有用。例如,如果您运行一个关于书籍的WordPress博客,并且有一个名为“主题”的分类法,那么您可以添加“小说”、“非小说”等子分类法,以便您的读者可以

过去,我们分享过如何使用PostExpirator插件使WordPress中的帖子过期。好吧,在创建活动列表网站时,我们发现这个插件非常有用。我们可以轻松删除过期的活动列表。其次,多亏了这个插件,按帖子过期日期对帖子进行排序也非常容易。在本文中,我们将向您展示如何在WordPress中按帖子过期日期对帖子进行排序。更新了代码以反映插件中更改自定义字段名称的更改。感谢Tajim在评论中让我们知道。在我们的特定项目中,我们将事件作为自定义帖子类型。现在

您是否正在寻找自动化 WordPress 网站和社交媒体帐户的方法? 通过自动化,您将能够在 Facebook、Twitter、LinkedIn、Instagram 等平台上自动分享您的 WordPress 博客文章或更新。 在本文中,我们将向您展示如何使用 IFTTT、Zapier 和 Uncanny Automator 轻松实现 WordPress 和社交媒体的自动化。 为什么要自动化 WordPress 和社交媒体? 自动化您的WordPre

我们的一位用户询问其他网站如何在页脚中显示查询数量和页面加载时间。您经常会在网站的页脚中看到这一点,它可能会显示类似以下内容:“1.248秒内64个查询”。在本文中,我们将向您展示如何在WordPress中显示查询数量和页面加载时间。只需将以下代码粘贴到主题文件中您喜欢的任何位置(例如footer.php)。queriesin

要使用 WordPress 主机建站,需要:选择一个可靠的主机提供商。购买一个域名。设置 WordPress 主机帐户。选择一个主题。添加页面和文章。安装插件。自定义您的网站。发布您的网站。
