今天在互联网上看到了一篇非常好的文章 – Wordpress主题Hack 技巧 (原文:Wordpress Theme Hack), 特地翻译过来和大家分享,阅读本文需要有一定的Wordpress使用基础, 至少能够看懂普通的PHP代码, ^_^, 新手就权当学习了吧。 由于文章较长, 我按照主题将它分为7篇文章便于大家理解。

Wordpress 最初开发的目的是为了架设博客和网站日志系统, 但是随着Wordpress变的越来越强大, 用户可以通过Wordpress架设各种各样的网站, 你甚至可以把它当成一个CMS(文档管理系统)系统来使用。 在这篇文章中, 我将会和你分享一些技巧, 这些技巧可以帮助你制作更好的Wordpress主题。 我不是一个软件开发员, 也不是软件发布商, 所以我更加关注前台的展现, 是的, 我几乎忘记Wordpress已经很容易使用了, 即使一个不懂编程的用户(就像我这样的设计者)也可以轻松架设一个漂亮的站点。

Wordpress条件式标签

Wordpress的条件式标签对于制作Wordpress主题是非常有用的。它不仅允许你控制显示什么样的内容, 还允许你控制如何显示。 下面是条件式标签在实际运用中的几个例子。

  1. 动态高亮菜单选项
    这个例子是我在Best Web Gallery这个站点中使用的,在第一个列表中, 如果是首页,类别页面,存档页面,搜索结果页面和日志页面, 那么在<li>这个标签内部添加 class=”current” 这个标签, class=”current”这个样式会高亮显示”Gallery”这个按钮。 在第二个标签中,如果是Pages页面,并且包含About, 那么同样也添加class=”current”这个标签进行高亮显示。代码如下:


    <ul id="nav">
      <li<?php if (
       is_home() || is_category() || is_archive() || is_search() || is_single() || is_date()
       )
      { echo ' class="current"'; } ?>><a href="#">Gallery</a></li>
      <li <?php if ( is_page('about') ) {
         echo ' class="current"';
         } ?> ><a href="#">About</a></li>
      <li<?php if ( is_page('submit') ) {
         echo ' class="current"';
        } ?> ><a href="#">Submit</a></li>
    </ul>

  2. 动态显示页面标题
    同样的, 我可以使用条件式标签动态输出header.php文件中<title>这个标签中的内容


    <title>
    <?php
    if (is_home()) {
    	echo bloginfo('name');
    } elseif (is_404()) {
    	echo '404 Not Found';
    } elseif (is_category()) {
    	echo 'Category:'; wp_title('');
    } elseif (is_search()) {
    	echo 'Search Results';
    } elseif ( is_day() || is_month() || is_year() ) {
    	echo 'Archives:'; wp_title('');
    } else {
    	echo wp_title('');
    }
    ?>
    </title>
    

  3. 动态输出内容
    如果你想要仅仅在首页中引用一个文件, 那么代码如下:
    <?php if (is_home()) {include(’file.php’); } ?>
  4. 高亮显示重点日志
    假定类别ID为2的所有文章是你想要重点推广的, 那么你可能想要通过添加一个CSS样式到所有类别ID为2的文章标题中来进行高亮显示。那么你可以在主循环代码中使用下面的代码片段。
    <?php if( in_category(’2′)) {echo (’class=”feature”‘);} ?>
  5. 定制日志模板
    假定你想要使用不同的日志模板来展现特定类别的文章内容, 那么我们可以使用 in_category这个标签来判断日志所属的类别, 并使用不同的模板。 在默认的日志模板single.php 中, 输入下面的代码。 如果日志属于类别1 (Category 1), 那么使用single1.php, 如果属于类别2 (Category2), 那么使用single2.php。 根据这个规则, 你可以设定无限多个类别模板来显示不同类别的日志。


    <?php
    $post = $wp_query- >post;

    if ( in_category(’1′)) {
    include(TEMPLATEPATH . ‘/single1.php’);

    } elseif ( in_category(’2′)) {
    include(TEMPLATEPATH . ‘/single2.php’);

    } else {
    include(TEMPLATEPATH . ‘/single_other.php’);
    }
    ?>