我正在尝试在循环中手动构建查询。php”,它在WordPress中进行搜索时,从自定义帖子类型中输出一个包含3篇帖子的列表,该列表位于自动给出的结果上方。
因此,我得到了以下代码,可以按照我的意图显示这些结果:
<?php
// The Query
$query1 = new WP_Query( array( \'post_type\' => \'sdm_downloads\', \'posts_per_page\' => 3) );
if ( $query1->have_posts() ) :
echo \'<div style="background-color:#fffced; padding:10px;margin-bottom:20px;">\';
echo \'<h3>Selected relevant items from our Briefings library:</h3>\';
// The Loop
while ( $query1->have_posts() ) {
$query1->the_post();
<article class="article-archive" id="post-<?php the_ID(); ?>">
<header>
<hgroup>
<p><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( \'Permalink to %s\' ), the_title_attribute( \'echo=0\' ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
<p>
<!--<p class="entry-meta">Posted <strong><?php echo human_time_diff(get_the_time(\'U\'), current_time(\'timestamp\')) . \' ago\'; ?></strong></p>-->
</hgroup>
</header>
</article>
<?php
}
echo \'</div>\';
endif
?>
这很好,只是它从这个帖子类型中提取了三篇最新的帖子。因此,我想我需要手动添加搜索词,如下所示:
$query1 = new WP_Query( array( \'post_type\' => \'sdm_downloads\', \'posts_per_page\' => 3, \'s\' => $s) );
然而,这一点也没有显示出来。同样,如果用字符串替换s变量,仍然不会返回任何帖子。我甚至删除了除字符串以外的所有参数,但仍然没有得到任何结果,例如:
$query1 = new WP_Query( array( \'s\' => \'awards\') );
有什么想法,关于为什么会发生这种情况&/或者如何修复?
谢谢
如果我在没有指定\'s\'参数的情况下转储查询,我会得到以下结果
string(226) "SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = \'sdm_downloads\' AND (wp_posts.post_status = \'publish\' OR wp_posts.post_status = \'private\') ORDER BY wp_posts.post_date DESC LIMIT 0, 3"
然而,如果我在WP\\u查询中添加一个“s”参数,则会得到以下转储:
string(32) "SELECT * FROM wp_posts WHERE 1=2"
似乎只有当我启用Relevanssi搜索插件时,才会出现这种行为。我想我会去makers网站问问,看看他们是否能解释为什么会发生这种情况。
同时,如果有人对如何处理这个问题有任何建议,我很乐意听取他们的意见。