WordPress主题高级技巧

WordPress 本来是作为一个blog或者blog平台开发的。但是现在WordPress变得越来越强大,你可以用它创建任何类型的网站,并把它当作内容管理系统(CMS)。 在本文中,我将与你分享一些制作更好的WordPress主题的技巧。

WordPress条件标签(Conditional Tags)
条件标签(Conditional Tags) 在创建动态WordPress主题过程中非常有用。

你可以用它来控制显示什么内容、如何显示。下面是条件标签的一些应用:

突出动态菜单(Dynamic Highlight Menu)

这是我在 Best Web Gallery中用来创建突出动态菜单的。在第一个列表项中,如果是Home或者Category或者Archive或者Search或者Single,则添加class=”current” 到

  • 标签, 这样将突出 “Gallery” 按钮。第二个列表项,如果是 名为 “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="#" mce_href="#">Gallery</a></li>
    <li
    <?php if ( is_page('about') ) { echo ' class="current"'; } ?>><a href="#" mce_href="#">About</a></li>
    <li
    <?php if ( is_page('submit') ) { echo ' class="current"'; } ?>><a href="#" mce_href="#">Submit</a></li>
    </ul>

    动态标题标签(Dynamic Title tag)

    我再次利用条件标签在 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>

    动态内容(Dynamic Content)

    如过你只想在第一页包含一个文件,下面是代码:

    <?php if ( is_home() ) { include ('file.php'); } ?>

    突出某个分类的文章(Feature post highlighting)

    假设你想添加一个CSS到categoryID 2以突出这个分类的所有文章,你可以用下面的片断 。

    <?php if ( in_category('2') ) { echo ('class="feature"'); } ?>

    独特的单模板(Unique Single template)

    假如你想使用独特的模板显示某个的分类的个别文章,你可以用 in_category 检查文章属于哪个分类然后使用独特的单模板。在你的默认单模板single.php中加入以下代码。如果文章在category 1,则用single1.php;如果在category 2则用 single2.php; 其它的用single_other.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'); } ? >

    独特类模板Unique Category template

    如果你想用不同的分类模板展示特别的分类,将你的分类模板(Category template)另存为 category-2.php(文件名添加 “-” 和分类ID数 )。所以,category-2.php将用来显示categoryID 2,category-3.php将用来显示 categoryID 3, 等等。

    在第一篇文章后显示Google AD

    很多人问我如何在第一篇文章后面显示Google广告,其实很简单,只需要在循环中加一个变量 ($loopcounter) ,如果 $loopcounter小于或等于1,则加入 google-ad.php 代码。

    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); $loopcounter++; ?> // the loop stuffs
    <?php if ($loopcounter <= 1) { include (TEMPLATEPATH . '/ad.php'); } ?>
    <?php endwhile; ?>
    <?php else : ?>
    <?php endif; ?>

    查询文章(Query Posts)

    你可一用 query_posts 控制那些内容在循环中显示。它可以让你控制显示哪些内容、在哪显示、如何显示。你可以查询或者排除某些分类,你完全可以控制。下面我将介绍如何使用 query_posts 显示最新文章、特定文章以及如何排除特定分类。

    显示最新文章(Display Latest Posts)

    下面的代码将输出5篇最新文章的列表:

    <?php query_posts('showposts=5'); ?>
    <ul>
    <?php while (have_posts()) : the_post(); ?>
    <li><a href="
    <?php the_permalink() ?>"><?php the_title(); ?></a></li>
    <?php endwhile;?>
    </ul>

    显示特定文章(Display Feature Posts)

    假设分类2(categoryID 2)是你的特定分类(Feature category),你想在边栏中显示五篇 Feature posts,把这些加入sidebar.php:

    <?php query_posts('cat=2&showposts=5'); ?>
    <ul>
    <?php while (have_posts()) : the_post(); ?>
    <li><a href="
    <?php the_permalink() ?>"><?php the_title(); ?></a></li>
    <?php endwhile;?>
    </ul>

    排除特定分类(Exclude specific category)

    你可以用 query_posts 排除特定分类不让它显示,下面的代码将排除分类ID2的所有文章(注意:ID数前面有个减号-):

    <?php query_posts('cat=-2'); ?>
    <?php while (have_posts()) : the_post(); ?> //the loop here
    <?php endwhile;?>

    自定义域(Custom Fields)

    自定义域(Custom field )是WordPress最强大的功能之一 。你可以连同文章和摘要附加额外的数据和文字。在自定义域,你可以逐字地把 WordPress变成CMS入口。在Web Designer Wall,,我用自定义域显示文章图片并把它链接到文章。 首先在文章中添加自定义域。
    把下面的代码加到循环中,以显示文章图片并附加文章链接。

    <?php //get article_image (custom field) ?>
    <?php $image = get_post_meta($post->ID, 'article_image', true); ?>
    <a href="
    <?php the_permalink() ?>"><img src="<?php echo $image; ?>" alt="<?php the_title(); ?>" /></a>

    Tips: WordPress允许你创建/存储若干关键字(keys),关键字在文章中可多次使用。 我用同样的方法在 Best Web Gallery中创建了极具动态的模板,我用自定义域(Custom Fields)显示站点缩略图、工具图片 及URL。

    WP页面列表(WP List Pages)
    基于导航的目的,模板标签 wp_list_pages 一般用来在顶部(header)和侧边栏显示WP页面(Pages)列表 。下面我将介绍如何使用 wp_list_pages显示站点地图和子菜单。

    站点地图(Site map)

    把下面的代码放到你的站点地图页面模板(Page Template )中,为所有的页面生成一个站点地图(sample)(注意:我排除了pageID 12 ,因为page12 是我的站点地图页面,我不想让它显示):

    <ul> <?php wp_list_pages('exclude=12&title_li=' ); ?> </ul>

    动态二级页面菜单(Dynamic Subpage Menu)

    如果当前页面有二级页面,把下面的代码加入sidebar.php 将输出二级页面菜单:

    <?php $children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0'); if ($children) { ?>
    <ul>
    <?php echo $children; ?>
    </ul>
    <?php } ?>

    页面模板(Page Template)

    如果你用WordPress作为基本的页面管理,你最好别遗漏页面模板( Page Template )功能。你可以自定义页面显示。
    首先,你需要创建一个页面模板,然后你可以为页面指派特定模板。 下面是页面模板的结构 (ie. portfolio.php):

    <?php /* Template Name: Portfolio */ ?>
    <?php get_header(); ?> //the loop here
    <?php get_footer(); ?>

    当你撰写或编辑一个页面,注意右边菜单 “Page Template” 你可以看到可用的模板。

    WordPress选项(WordPress Options)
    管理面板中有许多内建的选项可以使你的站点更雅观,下面是一部分:

    定义第一页(Custom Frontpage)
    WordPress在第一页默认显示blog文章,如果你想用一个静态的页面 取代(ie. welcome or splash page) ,你可以在 Admin > Options > Reading设置。

    Permalinks

    WordPress默认用 www.yoursite.com/?p=123 f作为文章URLs, 这不是URL 对搜索引擎也不友好。你可以通过 Admin > Options > Permalinks更改 Permalinks 设置。我个人喜欢吧Permalinks设置为:/%category%/%postname%/

    分类前缀(Category prefix)
    WordPress默认的分类前置是 “category” (ie. yoursite.com/category/cat-name/)。在Category base (Options > Permalinks)键入”article” ,你分类的URLs 将变成:yoursite.com/article/cat-name/

    想要更多?WordPress Codex一直是学习WordPress相关知识的最好地方。 感谢WordPress,快乐地blogging吧!
    原文链接: WordPress Theme Hacks
    翻译链接:文章的译者BLOG打不开了。

  • GOTOP8 条评论 To WordPress主题高级技巧

    1. only博客 说道:

      恩,这个方法好,学习一下~

    2. John 说道:

      不错,学习。

    3. ArianaReok 说道:

      I think you love dark color

    4. James 说道:

      Thanks. Useful on Kallista.

    5. housne 说道:

      恩,拿回去慢慢的研究下,有些东西只是略知一二,没系统的研究过!

    6. xiaorsz 说道:

      很丰富的内容啊!!
      学习中,看哪些自己能用到,呵呵!!

    发表评论

    电子邮件地址不会被公开。 必填项已用 * 标注

    *

    您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

    无觅相关文章插件,快速提升流量