サポート » プラグイン » wp-members検索結果数を得ると検索結果が不具合

  • wp-members検索結果のヒット数、というスレでアドバイス頂き、検索結果のヒット数は解決しました。
    しかし、そのコードでは検索結果数が常に100/100になってしまします。

    検索条件を
    <?php
    $s = $_GET[‘s’];
    $shizuoka= $_GET[‘shizuoka’];
    $yamanashi= $_GET[‘yamanashi’];
    if($shizuoka){
    foreach($shizuoka as $val){
    $metaquerysp[] = array(
    ‘key’=>’shizuoka’,
    ‘value’=> $val,
    );
    }
    }
    if($yamanashi){
    foreach($yamanashi as $val){
    $metaquerysp[] = array(
    ‘key’=>’yamanashi’,
    ‘value’=> $val,
    );
    }
    }

    $metaquerysp[‘relation’] = ‘OR’;

    ?>
    のように設定し
    <?php

    query_posts( array(
    ‘tax_query’ => $taxquerysp,
    ‘meta_query’ => $metaquerysp,
    ‘s’ => $s,
    ‘posts_per_page’ => 12,
    ‘paged’ => $paged,
    ‘order’ => ‘ASC’,
    )
    );
    ?>
    <?php $test1 = post_custom(‘members’); ?><!–もしメンバーがチェックされていたら–>
    <?php if ($test1 == “member”): ?><!–もしメンバーがチェックされていたら–>
    <?php if (is_user_logged_in()) : ?><!–ログインしている人だけ–>

    メンバー用ループ

    <?php endif; ?><!–ログインしている人だけEND–>
    <?php endif; ?> <!–もしメンバーがチェックされていたらEND–>

    <?php if ( ! is_user_logged_in()) : ?><!–ログインしていない人はこっち(memberのも見れる)–>

    一般用ループ
    <?php endif; ?> <!–ログインしていない人はこっちEND–>
    <?php endwhile; ?>
    <?php else : ?>
    物件が見つかりませんでした。

    <?php endif; ?>
    <?php wp_reset_query(); ?>

    これだと検索結果数やページャーがカウントする数が100%になり、メンバー用の数がでません。それで

    <?php
    $metaquerysp = array();
    if ( is_user_logged_in() ) {
    $metaquerysp[] = array( ‘key’ => ‘members’, ‘value’ => ‘member’ );
    } else {
    $metaquerysp[] = array( ‘key’ => ‘members’, ‘compare’ => ‘NOT EXISTS’ );
    }
    query_posts( array(
        ’tax_query’ => $taxquerysp,
    ‘meta_query’ => $metaquerysp,
    ‘s’ => $s,
        ’posts_per_page’ => 12,
    ‘paged’ => $paged,
    ‘order’ => ‘ASC’,
    )
    );
    ?>

    を教えていただきました

    これでメンバーメージと一般ページのヒット数が得られるのでヒット件数とページャーは正常です。
    しかし、検索結果が、どんな条件で検索するかに関わらず、全部(100登録してたら100件)が出てきてしまいます

    おそらく
    ‘meta_query’ => $metaquerysp,
    を設定したために
    $metaquerysp[‘relation’] = ‘OR’;
    がリセットされてしまったのではないかと思っています。

    よろしくお願いします。

    ヘルプの必要なページ: [リンクを見るにはログイン]

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 質問の内容がいまいち把握できていないのですが、

    $metaquerysp['relation'] = 'OR';

    $metaquerysp['relation'] = 'OR';
    if ( is_user_logged_in() ) {
    	$sub = array();
    	$sub[] = array( 'key' => 'members', 'value' => 'member' );
    	$sub[] = $metaquerysp;
    	$metaquerysp = $sub;
    } else {
    	$sub = array();
    	$sub[] = array( 'key' => 'members', 'compare' => 'NOT EXISTS' );
    	$sub[] = $metaquerysp;
    	$metaquerysp = $sub;
    }

    ということでしょうか?

    入れて見ましたが、うまくいきません
    <?php
    $metaquerysp = array();
    $metaquerysp[‘relation’] = ‘OR’;
    if ( is_user_logged_in() ) {
    $metaquerysp[] = array( ‘key’ => ‘members’, ‘value’ => ‘member’ );
    } else {
    $metaquerysp[] = array( ‘key’ => ‘members’, ‘compare’ => ‘NOT EXISTS’ );
    }
    query_posts( array(

    また
    <?php
    $metaquerysp[‘relation’] = ‘OR’;
    if ( is_user_logged_in() ) {
    $metaquerysp[] = array( ‘key’ => ‘members’, ‘value’ => ‘member’ );
    } else {
    $metaquerysp[] = array( ‘key’ => ‘members’, ‘compare’ => ‘NOT EXISTS’ );
    }
    query_posts( array(

    でも
    $metaquerysp[] = array( ‘key’ => ‘members’, ‘compare’ => ‘NOT EXISTS’ );
    の行でエラーになってしまします

        
    質問の意味は
    <?php
    $metaquerysp = array();
    if ( is_user_logged_in() ) {
    $metaquerysp[] = array( ‘key’ => ‘members’, ‘value’ => ‘member’ );
    } else {
    $metaquerysp[] = array( ‘key’ => ‘members’, ‘compare’ => ‘NOT EXISTS’ );
    }
    query_posts( array(
        ’tax_query’ => $taxquerysp,
    ‘meta_query’ => $metaquerysp,
    ‘s’ => $s,
        ’posts_per_page’ => 12,
    ‘paged’ => $paged,
    ‘order’ => ‘ASC’,
    )
    );
    ?>

    これでヒット数は会員と一般に分けて別の数を得ることができます。
    が、検索結果が検索条件で別れず、全条件分出てきます

    $metaquerysp
    の書き方の問題だと思うのですが、素人考えなのでわかりませんが。

    おわかりいただけますでしょうか?

    うーん、ちょっと分かりません。私ではお役に立てないかもしれません。すみませんが、トピックから引かせていただきます。m(__)m

    わかりました。いろいろありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • このトピックに返信するにはログインが必要です。