web-dev-qa-db-ja.com

どのようにして共通点がないまま投稿を検索しますか?

ページ内に複数の投稿を手動で取得することもできますが、デフォルトのクエリが別のものを返した後は、テンプレートで生成されます(page/postなど)。

分類法などを共有していない、パブリッククエリで複数の投稿をどのようにクエリするのですか。

例えばIDで:

http://example.com/?p=23,18,2,199,6,8

Page-name.phpテンプレートの変数をすでに解析していますが、テンプレートを取得すると生成するには遅すぎます。規範。

検索は1対複数の投稿の関係であり、これには複数のクエリと固有の投稿(それぞれ)が必要であることを除けば、これは検索に似たものになると思います。

ありがとう。

1
sergio

post__inWP_Queryパラメータを探しているのかもしれません。

$query = new WP_Query(array(
    'post__in' => array(23,18,2,199,6,8)
);

その後:

while ( $query->have_posts() ) {
    $query->the_post();
    /* post loop */
}

ドキュメント を見てください。 = D

パブリッククエリの場合:

post__inはデフォルトではpublic queryableではないので、$_GET['post__in']アクションフックでparse_queryを検証してコピーするだけで問題は解決します。

add_action('parse_query', 'wpse59828_parse_query');
function wpse59828_parse_query($query) {
    if (empty($_GET['post__in']))
        return $query;

    $posts = explode(',', $_GET['post__in']);
    $post__in = array();
    foreach ($posts as $p) {
        $post__in[] = intval($p);
    }

    $query->query_vars['post__in'] = $post__in;
    return $query;
}

それからあなたはこれにアクセスするでしょう:

http://mywebsite.com/?post__in=23,18,2,199,6,8

このように、3.5より前のWordPressバージョンでは投稿順を設定することはできません( #13729 )。必要に応じて このプラグイン を使ってください。

5
vmassuchetto
$tax_query = array (
    array (
        'taxonomy' => 'product_cat',
        'field' => 'slug',
        'terms' => $cat_name
        )
    );

$args = array( 'tax_query' => $tax_query, 'numberposts' => -1);
$lastposts = get_posts( $args );
0
robin