基于搜索字词的条件侧边栏

时间:2014-06-04 09:56:26

标签: wordpress

如果有人搜索术语xperia z1,则网址格式如下:

  

domain.com/?s=xperia+z1

是否有根据搜索模式中的短语显示不同的侧边栏? 在上面的示例中,我希望显示sony侧边栏。

  • 如果搜索字词包含“xperia”(或任何包含“xperia”字样的内容),则显示sony sidebar
  • 如果搜索字词包含“lumia”(或任何包含“lumia”字样的内容),则显示nokia sidebar

等等。

我设法让它运转起来:

<?php if ( isset($_GET['s']) && $_GET['s']=="xperia")  { ?>
<?php get_sidebar('sony'); ?>
<?php } else { ?>  

<?php if ( isset($_GET['s']) && $_GET['s']=="lumia")  { ?>
<?php get_sidebar('nokia'); ?>
<?php } else { ?>  

<?php get_sidebar('left'); ?>
<? } ?><? } ?>

问题是我想要通配符匹配。当前代码特定于“xperia” 如果有人搜索“xperia 123”

,我希望它也能点火

我知道.htaccess规则是:

RewriteCond %{QUERY_STRING} (?:^|&)s=.*?xperia[^&]*(?:&|$)
RewriteRule ^ /blahblah/blah/? [L,R]

但我不知道如何将其复制到PHP代码中。

我试过了:<?php if ( isset($_GET['s']) && $_GET['s']==".*?xperia[^&]*(?:&|$)") { ?> 当然没有运气。

1 个答案:

答案 0 :(得分:0)

试试这个而不是你的:

<?php if ( isset($_GET['s']=='xperia+z1'))  { ?>
 <?php  dynamic_sidebar('sony'); ?> 
<?php } else { ?>  
<?php if ( isset($_GET['s']=='nokia'))  { ?>
 <?php  dynamic_sidebar('nokia'); ?> 

可能有帮助