wordpress 自定义_调查:创建自定义WordPress查询

今天,我们将看一下WordPress Query 即使WordPress已记录了其Query函数 ,但深入研究每个部分还是非常令人生畏的,并且可能不切实际。 这是您需要的快捷方式。

在这篇文章中,我们将讨论您可能需要经常在主题上应用WordPress查询的一些实用技巧

基本的WP_Query

简而言之, WP_Query是用于请求WordPress帖子和页面的类。 我们可以在WordPress主题中创建一个新的WP_Query类,以查询自定义规范中的帖子(或页面)。

首先,让我们看一下主题目录中的index.php 您应该找到以下代码。



它称为Loop 。 默认情况下,它显示所有已发布的帖子。

让我们看看如何使用WP_Query对其进行自定义。 在此示例中,我们将排除特定类别的帖子。

首先,我们在变量中设置一个新的WP_Query

$my_query = new WP_Query();

在其中,我们可以分配要排除的类别ID。 例如:

$my_query = new WP_Query('cat=-1,-5'); //exclude category 1 and 5

然后,我们在循环中引用变量,如下所示。

have_posts() ) : while ( $my_custom_query->have_posts() ) : $my_custom_query->the_post(); ?>
	

请注意,当您有多个自定义查询时,尤其是在单个页面中,则必须用wp_reset_postdata()将其括起来。

使用WP-PageNavi分配查询

WP-PageNavi可能是最流行的在WordPress中添加数字分页的插件。 但是,大多数人将其与自定义WP_Query一起使用时会遇到错误。 分页根本就行不通

从2.74版开始,WP-PageNavi提供了一个选项,您可以在其中分配自定义查询。 以上面的自定义查询为例,我们可以执行以下操作:

wp_pagenavi( array( 'query' => $my_query ) );

……那应该解决错误。

缓存查询

应该注意的是,当您有多个查询时(尤其是在单个页面上),最终将导致多个服务器负载,这可能会影响站点负载性能 。

优化它的方法之一是使用Transient API。 在这种情况下,我们使用它来缓存WP_Query查询的对象,并将其存储在一定的时间段内。

这样,我们可以通过检索和处理缓存的数据而不是在每次页面加载时进行查询来加快查询的加载时间。

这是一个代码示例,其中缓存存储24小时。

if ( ! ( $my_query = get_transient( 'my_query_cache' ) ) ) {
	$my_query = new WP_Query('cat=-1,-5');
	set_transient( 'my_query_cache', $my_query, DAY_IN_SECONDS );
}

结语

使用WP_Query ,我们可以创建简单或更复杂的查询。 如果编写自定义WP_Query对您WP_Query似乎很复杂,则可以使用一个名为WP_Query Generator的工具来简化此工作。

我希望您会发现此技巧有用,并且如果您想进一步研究该主题,请参考以下参考资料:

  • WordPress循环 -WordPress Codex
  • WordPress查询 -WordPress Codex
  • 用WordPress循环的4种方法 — DigWP
  • 用WordPress自己动手缓存方法

翻译自: https://www.hongkiat.com/blog/wordpress-query-basic/

你可能感兴趣的:(wordpress 自定义_调查:创建自定义WordPress查询)