搜索
首页CMS教程WordPress探索WordPress get_posts功能

探索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()函数是什么?探索WordPress get_posts功能 自WordPress 1.2.0以来,WordPress Core已在WordPress Core中使用

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></span>
posts_per_page:此参数定义要返回的帖子数量。如果您想要所有帖子,请使用-1。

> page:允许我们在使用posts_per_page参数时在一组帖子之间导航。它用于分页。例如:假设posts_per_page是10,结果中有20个帖子,然后如果您分配了第2个,则返回最后10个帖子。
    > Orderby:用于对检索到的帖子进行排序。一些可能的值是:“无”,“ date”,“ rand”,“ comment_count”,“ meta_value”,“ meta_value_num”等,同时使用“ meta_value”和“ meta_value_num”进行排序时,您需要提供Meta_key参数。
  1. 顺序:指定订单参数的上升或降序。可能的值是“ desc”或“ asc”。
  2. >
  3. 排除:它获取逗号分隔的帖子ID列表,该列表将在数据库搜索中排除。
  4. > meta_key和meta_value:如果您仅提供元数据,则将返回具有密钥的帖子。如果您还提供meta_value,则返回了与meta_key的meta_value匹配的帖子。
  5. >
  6. post_type:根据帖子,页面或自定义帖子类型检索内容。请记住,默认的post_type仅设置为显示帖子,而不设置为页面。
  7. >
  8. > POST_STATUS:根据帖子状态检索帖子。可能的价值是:“发布”,“待处理”,“草稿”,“未来”,“任何”或“垃圾”。
  9. >
  10. > wp_post对象
  11. get_post函数返回包含WP_POST对象的数组。这是WP_POST对象的重要属性:
    1. ID:帖子的ID
    2. >
    3. > post_author:帖子的作者名称
    4. post_type:post
    5. 的类型
    6. post_title:帖子的标题
    7. >
    8. > post_date:发布的日期。格式:0000-00-00 00:00:00
    9. post_content:帖子的内容。
    10. post_status:职位的状态
    11. >
    12. 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></span>

    >在这里,我们使用订单参数根据注释数量对帖子进行排序,并检索前10个帖子。

    随机帖子

    >您也可以轻松检索随机帖子。一旦阅读了当前的文章,就可以在您的网站上推荐另一篇文章。这是为此的代码:

    <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 id="post-gt-post-title">" . $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>
    在上面的示例中,我们将值rand传递给了order_by参数。

    >

    >具有匹配的元密钥和值

    >的帖子

    >我们可能想检索所有具有特定元密钥的帖子和分配的值。例如:有些博客都有每篇文章的审稿人。我们可能想检索特定审稿人审查的文章。

    这是做到这一点的代码:

    >

    <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 id="post-gt-post-title">" . $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>
    >在这里,我们正在检索“ NarayanPrusty”审查的所有帖子。我们假设审阅者名称是通过每个帖子的元密钥“审稿人”存储的。

    >

    >自定义帖子类型带有自定义分类法

    >我们可能想检索带有自定义分类名称的自定义帖子类型的帖子。考虑此代码示例:

    <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 id="post-gt-post-title">" . $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>
    在此示例中,我们正在检索属于“插件”和“主题”自定义分类法的定制帖子类型的帖子。

    结论

    >在本文中,我们看到了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中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
5个WordPress插件,供开发人员在2025年使用5个WordPress插件,供开发人员在2025年使用Apr 27, 2025 am 08:25 AM

2025年网站开发的七个必备WordPress插件 在2025年建立顶级WordPress网站需要速度,响应能力和可扩展性。 实现这种有效的实现通常取决于战略插件的选择。 这篇文章Highlig

您将使用WordPress做什么?您将使用WordPress做什么?Apr 27, 2025 am 12:14 AM

WordPresscanbeusedforvariouspurposesbeyondblogging.1)E-commerce:WithWooCommerce,itcanbecomeafullonlinestore.2)Membershipsites:PluginslikeMemberPressenableexclusivecontentareas.3)Portfoliosites:ThemeslikeAstraallowstunninglayouts.Ensuretomanageplugins

WordPress适合创建投资组合网站吗?WordPress适合创建投资组合网站吗?Apr 26, 2025 am 12:05 AM

是的,wordpressisisexcellentforcortingaportfoliowebsite.1)itoffersnumeroversnumeroverportfolio-spificthemeslike'astra'astra'astra'astra'astra'astra'astra'astra'astra'elementor'Enelementor'enableIntiviveSiveSign,Thoughtemanycanslowthesite.3)

使用WordPress而不是从头开始编码网站的优点是什么?使用WordPress而不是从头开始编码网站的优点是什么?Apr 25, 2025 am 12:16 AM

WordPressisadvantageousovercodingawebsitefromscratchdueto:1)easeofuseandfasterdevelopment,2)flexibilityandscalability,3)strongcommunitysupport,4)built-inSEOandmarketingtools,5)cost-effectiveness,and6)regularsecurityupdates.Thesefeaturesallowforquicke

是什么使WordPress成为内容管理系统?是什么使WordPress成为内容管理系统?Apr 24, 2025 pm 05:25 PM

WordPressIsAcmsDuetoItseAsofuse,自定义,USERMANAMECTION,SEO和COMMUNITYSUPPORT.1)ITSIMPLIFIESCONTENTMANGAMEWITHANINTUISIDERFEEFFECE.2)提供extentensiveCustomizationThroughThroughTheMesandPlugins.3)supportrobustuserrolesandplugins.4)supportrobustuserrolesandpermissions.4)增强

wordpress怎么加评论框wordpress怎么加评论框Apr 20, 2025 pm 12:15 PM

在 WordPress 网站上启用评论功能,可以为访客提供参与讨论和分享反馈的平台。为此,请按照以下步骤操作:启用评论:在仪表盘中,导航至“设置”>“讨论”,并选中“允许评论”复选框。创建评论表单:在编辑器中,单击“添加块”并搜索“评论”块,将其添加到内容中。自定义评论表单:通过设置标题、标签、占位符和按钮文本来定制评论块。保存更改:单击“更新”以保存评论框并将其添加到页面或文章中。

wordpress怎么复制子站wordpress怎么复制子站Apr 20, 2025 pm 12:12 PM

如何复制 WordPress 子站?步骤:在主站创建子站。在主站克隆子站。将克隆导入目标位置。更新域名(可选)。分开插件和主题。

wordpress怎么写页头wordpress怎么写页头Apr 20, 2025 pm 12:09 PM

在WordPress中创建自定义页头的步骤如下:编辑主题文件“header.php”。添加您的网站名称和描述。创建导航菜单。添加搜索栏。保存更改并查看您的自定义页头。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中