使用GET_POSTS参数/数组/字符串

时间:2013-01-29 作者:Ben Racicot

我正在将所有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\' ) ) );
但这是一个我不知道如何处理的常见问题。如何将动态参数获取到数组中,或者在哪里可以找到字符串格式的参数规则(如代码)?

2 个回复
最合适的回答,由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
        );
     }
}

结束

相关推荐