钥匙要点
-
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></span>posts_per_page:此参数定义要返回的帖子数量。如果您想要所有帖子,请使用-1。
> 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></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中文网其他相关文章!

将PHP数据传递给JavaScript的最佳实践:WP_LOCALIZE_SCRIPT和WP_ADD_INLINE_SCRIPT的比较 在PHP文件中将数据存储在静态字符串中是建议的练习。 如果在您的JavaScript代码中需要此数据,请合并

本指南演示了如何使用WordPress PDF插件在WordPress帖子和页面中嵌入和保护PDF文件。 PDFS为从目录到演示文稿提供了一种用户友好的,普遍访问的格式。 此方法ENS

WordPress对初学者来说容易上手。1.登录后台后,用户界面直观,简洁的仪表板提供所有必要功能链接。2.基本操作包括创建和编辑内容,所见即所得的编辑器简化了内容创建。3.初学者可以通过插件和主题扩展网站功能,学习曲线存在但可以通过实践掌握。

人们选择使用WordPress是因为其强大和灵活性。1)WordPress是一个开源的CMS,易用性和可扩展性强,适合各种网站需求。2)它有丰富的主题和插件,生态系统庞大,社区支持强大。3)WordPress的工作原理基于主题、插件和核心功能,使用PHP和MySQL处理数据,支持性能优化。

WordPress核心版本是免费的,但使用过程中可能产生其他费用。1.域名和托管服务需要付费。2.高级主题和插件可能需要付费。3.专业服务和高级功能可能需要付费。

WordPress本身免费,但使用需额外费用:1.WordPress.com提供从免费到付费的套餐,价格从每月几美元到几十美元不等;2.WordPress.org需购买域名(每年10-20美元)和托管服务(每月5-50美元);3.插件和主题多数免费,付费的价格在几十到几百美元之间;通过选择合适的托管服务、合理使用插件和主题、定期维护和优化,可以有效控制和优化WordPress的成本。

Wix适合没有编程经验的用户,WordPress适合希望有更多控制和扩展能力的用户。1)Wix提供拖放式编辑器和丰富模板,易于快速搭建网站。2)WordPress作为开源CMS,拥有庞大社区和插件生态,支持深度自定义和扩展。

wordpressgood forvortalyanewebprojectDuetoItsAsatilityAsacms.itexcelsin:1)用户友好性,允许Aeserywebsitesetup; 2)sexibility andcustomized andcustomization and numerthemesandplugins; 3)seoop timigimization; and4)and4)


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

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

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Linux新版
SublimeText3 Linux最新版