【问题标题】:wordpress search query errorwordpress 搜索查询错误
【发布时间】:2014-02-24 05:08:26
【问题描述】:

我制作了一个元框,将帖子设为私有或公开。

当用户登录时,所有帖子都会显示,但当用户未登录时,只会显示公共帖子。

一切正常,我的查询和条件在其他页面上运行良好,但是当我搜索帖子并注销时,私人帖子也会显示给我。

我无法理解发生了什么。这是我的代码:

search.php

<?php
    global $post;

    $public = array('meta_key' => 'rd_login_posts', 'meta_value' => 0, 'posts_per_page' => 999);
    $public_private = array('posts_per_page' => 999);

    if(!is_user_logged_in()){
        $st_cat_posts = get_posts($public);
        //echo "No Login";
    }else{
        $st_cat_posts = get_posts($public_private);
        //echo "Yes Login";
    }

    foreach($st_cat_posts as $post) : setup_postdata($post);
             get_template_part( 'content', get_post_format() );
    endforeach; 
?>

在两个页面中它工作正常,但在搜索中,结果并不完美,它显示了所有结果。

请帮帮我,有什么建议

【问题讨论】:

  • 你有没有将此代码添加到search.php???
  • 是的,我在 search.php 之后添加了这段代码 ' . get_search_query() 。 '' ); ?>

标签: php wordpress search login


【解决方案1】:

试试这个,

您应该将此代码添加到您的search.php..

<?php 
global $post;

if(!is_user_logged_in()){
    set_query_var('meta_key', 'rd_login_posts');
    set_query_var('meta_value', 0);
}
set_query_var('posts_per_page', 999);

if (have_posts()) :
    while (have_posts()) : the_post();
        get_template_part( 'content', get_post_format() );
    endwhile;
endif;
?>

希望它有效...

【讨论】:

  • set_query_var() 当我写这篇文章时,我的编辑器给了我语法错误
  • 不,兄弟,当我注销私人信息时,也会显示私人信息 - 当用户注销时,私人信息会隐藏,仅显示公共信息
  • 你有没有在你的系统中检查过我上面的代码????因为我已经添加了条件if(!is_user_logged_in()){检查...
  • 抱歉我的问题我不需要这个 $st_sub_category_id 在搜索中再次抱歉
  • 我如何编写自己的搜索查询在 WP 中是否可行
【解决方案2】:

非常感谢@Akshay Paghdar 帮助我,但我搜索、搜索并找到了解决方案,并且我的代码运行良好

search.php 我只编辑了数组中的一个参数

$public = array('meta_key' => 'rd_login_posts', 'meta_value' => 0, 'posts_per_page' => 999, 's' => get_search_query());
$public_private = array('posts_per_page' => 999, 's' => get_search_query());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-02
    • 2017-06-30
    • 2020-02-24
    • 2021-07-23
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多