我希望我的客户能够通过选择我为其创建的模板之一(page-two-column.php或page-three-column.php)来控制搜索结果页面的外观,以便他们可以更改横幅图像等元素。
因此,我在WP仪表板中创建了一个名为Search Results的新页面,该页面返回以下mysite。com/搜索结果/
默认情况下,WordPress会创建类似于此mysite的URL。com/?s=产品
浏览了大量示例in the codex, 我遇到了这段代码,我认为它可以满足我的需要。
// Use the two column template as the search result.
add_action(\'template_include\', \'new_search_tmpl\');
function new_search_tmpl( $template ) {
if ( is_search() ) {
$t = locate_template(\'page-two-column.php\', false);
if ( ! empty($t) ) $template = $t;
}
return $template;
}
然后,在第二页的列中。php我正在检查我们是否请求这样的搜索结果。。。
<!-- SEARCH PAGE -->
<?php if (is_search()): ?>
<a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a>
<?php else: ?>
<article id="post-not-found" class="hentry clearfix">
<header class="article-header">
<h3><?php _e( "It looks like we couldn\'t find what you were looking for!", \'bonestheme\' ); ?></h3>
</header>
<section class="entry-content">
<p><?php _e( \'Try a different search.\', \'bonestheme\' ); ?></p>
</section>
<footer class="article-footer">
<p><?php // _e( \'This is the error message in the page.php template.\', \'bonestheme\' ); ?></p>
</footer>
</article>
<?php endif ?>
来自原始搜索。我想要覆盖的php页面<人力资源/>
EDIT进一步的测试表明,is确实使用了双列模板,这很好,但是,我仍然需要它来从我正在创建的搜索结果页面中提取横幅图像。
现在,我可以使用以下代码将搜索结果特色图像拉入搜索页面:
<?php if (is_search()) {
echo get_the_post_thumbnail( \'1711\', \'1920\' );
}?>
最合适的回答,由SO网友:SixfootJames 整理而成
这就是最终对我起作用的原因。
要从另一个页面拉入横幅(特色)图像,请在WordPress中创建搜索结果页面,并确保使用搜索排除插件将其从搜索结果中排除,然后添加特色图像并将其弹出到两列自定义模板中:
<?php if (is_search()) {
$attachment_id = 1711; // attachment ID
$image_attributes = wp_get_attachment_image_src( get_post_thumbnail_id($attachment_id), \'full\' ); // returns an array
if( $image_attributes ) { ?>
<div class="top-background" style="background: url(<?php echo $image_attributes[0]; ?>) !important;"></div>
<?php }?>
<?php }?>
要强制wordpress使用两列自定义模板作为搜索结果页,请执行以下操作:
<!-- SEARCH PAGE -->
<?php if (is_search()): ?>
<section class="entry-content clearfix" itemprop="articleBody">
<ul>
<li>
<h3><a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a></h3>
<?php
$content = get_the_content();
$trimmed_content = wp_trim_words( $content, 40, \'<a href="\'. get_permalink() .\'"> ...Read More</a>\' );
echo $trimmed_content;
?>
</li>
</ul>
</section>
<?php endif ?>