在Wordpress中,我希望我的侧边栏根据页面进行更改

时间:2013-08-02 03:22:33

标签: php wordpress if-statement sidebar

好的,我刚刚使用指南开发了我的第一个自定义Wordpress主题 - 我还是一个菜鸟。我没有使用小部件来填充侧边栏,我想用自己的代码和图像填充它。

所以我想说我想要的第一个侧边栏只显示在主页上,然后我制作的第二个侧边栏显示在每个其他页面上。我可以使用if语句吗?

<?php

if(is_home()){

echo

"<div class="row">
            <div class="span3">
                <div id="search-box"><img id="search_text" src="http://localhost/Dorsa/wp-content/themes/Bootstrap/img/text_findyourhome.png">
                </div>
            </div>
        </div>


        <div class="row">
            <div class="span3">
                <img class="box_shadow" src="http://localhost/Dorsa/wp-content/themes/Bootstrap/img/box-shadow.png" style="padding-left:0;">
            </div>
        </div>

        <div class="row">
            <div class="span3"><div id="news" style="margin-top:275px;margin-bottom:200px">News</div></div>
         </div>"
         }

         else
         {
         echo
         "sidebar 2 code - didn't write it yet"
         }       
?>

2 个答案:

答案 0 :(得分:1)

如果您只想在主页和其他页面中显示一个侧边栏,则可以使用@ChrisHerbert所说的if语句。新的解决方案是创建一个新的模板和侧边栏。

  1. 首先找到您的sidebar.php文件并复制一份。
  2. 使用wordpress naming convention为侧边栏命名,例如:sidebar-secondary.php
  3. 根据需要在sidebar-secondary.php中进行更改。
  4. 制作一个新的template并将您的侧边栏用作<?php get_sidebar(‘secondary’); ?>
  5. 修改

    假设您想要一个侧边栏用于主页并与其他所有侧边栏分开,您可以执行以下操作。

    1. 如上所述创建sidebar-secondary.php
    2. 主模板通常为index.php。这通常包含主页的侧边栏。你会发现一些像<?php get_sidebar() ?>这样的代码。
    3. 如果您想在首页上使用辅助侧边栏,请打开页面模板page.php。找到行get_sidebar()并将其替换为get_sidebar('secondary')。现在,您的所有页面都将使用辅助侧边栏。如果您的任何页面使用不同的模板,则需要执行相同的操作。
    4. 要在您的单个帖子页面显示辅助侧边栏(用户点击博客部分中的readmore后显示的页面),请打开single.php,然后再次找到并将get_sidebar()替换为get_sidebar('secondary')
    5. 现在,您可以为主页和其他页面设置不同的样式并使用侧栏。

      请注意,如果您只想在主页中使用不同的侧边栏,并且在页面的其余部分使用相同的边栏,则还可以在主模板文件index.php中使用条件。

      if( is_home() ){
       get_sidebar(); //your main sidebar for homepage
      } else {
       get_sidebar('secondary'); //your sidebar for other pages
      }
      

答案 1 :(得分:0)

模板肯定是要走的路,但是假设您的“主页”是您的博客页面,您的解决方案应该有效。如果您将主页设置为静态页面(在仪表板的“阅读”部分中),则应使用is_front_page()功能而不是is_home()

我还建议在标记之前使用替代语法并关闭PHP标记,如下所示:

<?php if ( is_home() ) : ?>

    <div class="row">
        <div class="span3">
            <div id="search-box"><img id="search_text" src="http://localhost/Dorsa/wp-content/themes/Bootstrap/img/text_findyourhome.png">
            </div>
        </div>
    </div>

    <div class="row">
        <div class="span3">
            <img class="box_shadow" src="http://localhost/Dorsa/wp-content/themes/Bootstrap/img/box-shadow.png" style="padding-left:0;">
        </div>
    </div>

    <div class="row">
        <div class="span3"><div id="news" style="margin-top:275px;margin-bottom:200px">News</div></div>
    </div>

<?php else: ?>

    <!-- sidebar 2 code - didn't write it yet" -->

<?php endif; ?>