我正在将所有query\\u posts查询转换为get\\u posts,之前我做了大量关于这对性能有多糟糕的研究。我的解决方案是get\\u posts,但使用它让我感到困惑。以下是我所拥有的:
$posts = get_posts(\'showposts=-1&offest=10&post_type=any\');
foreach ($posts as $post) :
?>
<div class="box">
<a href="<?php the_permalink() ?>" rel="bookmark">
<h2><?php the_title(); ?></h2>
<?php if (has_post_thumbnail()) {
the_post_thumbnail(\'thumbnail\');
}?>
<?php the_content();?></a>
</div><?php endforeach; ?>
它可以工作,但有些参数不能工作,例如offset和“any”post类型非常模糊。
$posts = get_posts(\'showposts=-1&offest=10&post_type=any\');
法典告诉我们,我们也可以使用数组:
$query = new WP_Query( array( \'post_type\' => array( \'post\', \'page\', \'movie\', \'book\' ) ) );
但这是一个我不知道如何处理的常见问题。如何将动态参数获取到数组中,或者在哪里可以找到字符串格式的参数规则(如代码)?
最合适的回答,由SO网友:s_ha_dum 整理而成
如何将动态参数获取到数组中,。。。
This example from the Codex 证明:
$paged = get_query_var( \'paged\' ) ? get_query_var( \'paged\' ) : 1;
$sticky = get_option( \'sticky_posts\' );
$args = array(
\'cat\' => 3,
\'ignore_sticky_posts\' => 1,
\'post__not_in\' => $sticky,
\'paged\' => $paged
);
$query = new WP_Query( $args );
两者都有
$paged
和
$sticky
是变量——我想这就是“动态参数”的含义。
或者在哪里可以找到字符串格式的参数规则,如我的代码?
不完全确定这意味着什么,但Codex页面WP_Query
应该给你所有的参数。您似乎知道如何创建类似字符串的查询字符串,但我建议您不要这样做。构建一个数组并使用它。那个字符串很难读。很难编辑。它可能不适用于更复杂的查询,比如meta\\u查询,但我真的不确定,因为我从来没有使用过这种字符串语法。
SO网友:Ben Racicot
在@s_ha_dum对关联数组进行了甜蜜的解释之后,我想我应该发布关于索引数组的这个问题的答案:
必须循环遍历数组中的每个值。例如,对于add\\u meta\\u box(),必须为每个自定义帖子类型激发函数
function add_post_meta_boxes() {
$types = array(\'custom_type\', \'post\', \'page\');
foreach( $types as $type ) {
add_meta_box(
\'unique_id\', // Unique ID
esc_html__( \'Post Class\', \'themename\' ), // Title
\'CALLBACK_FUNC\', // Callback function - html
$type, // Admin page (or post type)
\'side\', // Context
\'default\' // Priority
);
}
}