WordPress最初是作为一个weblog或博客平台创建的。但是现在WordPress变得如此强大,您可以使用它创建任何类型的网站,并将其用作内容管理系统(CMS)。在这篇文章中,我将与大家分享一些关于如何使WordPress主题更好的技巧。我既不是程序员,也不是开发人员,所以我将更多地关注前端开发。哦,是的,我忘了提到WordPress让它变得如此容易,即使是一个非程序员(像我这样的设计师)也可以建立一个很棒的网站。我的WordPress网站包括:N.Design Studio,Best Web Gallery,Web Designer Wall,以及一些免费的 WordPress Themes。
WordPress条件标记
条件标记在创建动态WordPress主题时非常有用。它允许您控制显示哪些内容以及如何显示该内容。下面是条件标记的几个示例用法:
动态高亮菜单
这里是我用来创建一个动态高亮菜单的 Best Web Gallery。在第一个列表项中,如果它是Home、类别或Archive或Search或Single,则将class=“Current”添加到<li>标记中,这将突出显示“图片库”按钮。第二项,如果是带有页面段格“约”的页面,则添加class=“Current”。
1 2 3 4 5 | <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> |
动态标题标签
同样,我在 header.php中使用 Conditational标记输出动态 <title>
标记。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <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> |
动态文本
如果您想要包含一个只出现在首页上的文件,下面是代码:
1 | <?php if ( is_home() ) { include ('file.php'); } ?> |
文章特色高亮
假设 categoryID 2是您的特性类别,您想要添加一个 CSS类来突出显示所有在特性中的帖子,您可以在循环中使用下面的代码片段。
1 | <?php if ( in_category('2') ) { echo ('class="feature"'); } ?> |
唯一单页模板
假设您希望使用不同的单个模板来显示特定类别中的单个帖子。您可以使用 in_category
来检查 post存储在哪个类别中,然后使用不同的单个模板。在默认的 single.php中,输入下面的代码。如果 post位于类别1,则使用 single1.php,在类别 2中使用其他,使用 single2.php,否则使用 single.php。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?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'); } ? > |
唯一类别模板
假设您希望使用不同的 Category模板来显示特定类别。只需将您的 Category模板保存为 category-2.php(注意:添加“-”以及在文件名中添加 categoryID号)。因此,category-2.php将用于显示 category-2.php,而 category-3.php将用于 category-3.php,依此类推。
在第一个帖子后显示谷歌广告
很多人都向我要过这个。如何第一篇文章后面的位置显示谷歌广告?这很简单。您只需要在循环中添加一个变量 ($loopcounter
)。如果 $loopcounter
小于或等于1,则包括 google-ad.php代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?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
来显示最新帖子、特色文章的列表,以及如何排除特定类别。
显示最新帖子
下面的代码将在列表中输出最新的5个帖子:
1 2 3 4 5 6 7 | <?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> |
显示特色文章
Let’s say categoryID 2 is your Feature category and you want to display 5 Feature posts in the sidebar, put this in your sidebar.php:
让我们假设 categoryID 2是您的特性类别,您希望在侧栏中显示5个特色帖子,将其放在您的侧栏 sidebar.php中:
1 2 3 4 5 6 7 | <?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> |
排除特定类别
还可以使用 query_posts
排除正在显示的特定类别。以下代码将排除 categoryID 2中的所有帖子(注意:在 ID号之前有一个减号):
1 2 3 4 5 | <?php query_posts('cat=-2'); ?> <?php while (have_posts()) : the_post(); ?> //the loop here <?php endwhile;?> |
提示:您可以使用 posts_per_page
参数(即 <?php query_posts('posts_per_page=6'); ?>
)
自定义域
自定义字段是最强大的WordPress功能之一。它允许您附加额外的数据或文本到文章连同内容和摘录。使用自定义字段,您可以逐字逐句地将 WordPress转到任何Web门户 CMS中。在 Web Designer Wall上,我使用自定义字段显示文章图像并将其链接到帖子。
首先在 post中添加自定义字段。
要显示文章图像并将其附加到 post链接中,请将以下代码放在循环中:
1 2 3 4 | <?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> |
小贴士:别忘了 WordPress允许你创建/存储多个键,每个帖子都可以多次使用这些键。
我使用了同样的方法,并在最佳Web图库创建了一个 Best Web Gallery的模板,在那里我使用自定义字段来显示站点缩略图、工具提示图像和 URL。
WP列表页
模板标记 wp_list_pages通常用于显示标题和侧栏中的 WP页面列表,用于导航目的。在这里,我将向您展示如何使用 wp_list_pages
来显示站点地图和子菜单。
网站地图
要生成所有页面的 sitemap (sample),请将此代码放入 sitemap Page Template(注意:我不包括 pageID 12,因为 page12是我的 sitemap页面,我不想显示它):
1 2 3 | <ul> <?php wp_list_pages('exclude=12&title_li=' ); ?> </ul> |
动态子页菜单
将其放入侧栏 sidebar.php中,如果存在当前页面的子页,它将输出一个子页菜单:
1 2 3 4 5 6 7 8 | <?php $children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0'); if ($children) { ?> <ul> <?php echo $children; ?> </ul> <?php } ?> |
页面模板
如果您正在使用 WordPress作为一个基本的网页管理,您最好不要错过页面模板功能。它允许您自定义页面的显示方式。要使用 Page Template,首先需要创建一个 PageTemplate,然后可以将 Page分配给特定的模板。
以下是页面模板的结构(即,portfolio.php):
1 2 3 4 5 6 7 8 9 | <?php /* Template Name: Portfolio */ ?> <?php get_header(); ?> //the loop here <?php get_footer(); ?> |
当您正在编写或编辑页面时,请查看正确的选项卡 “Page Template”,您应该会看到可用的模板。
WordPress选项
有许多内置选项在管理面板,可以使您的网站更好。以下是其中一些:
自定义首页
默认情况下,WordPress会在首页上显示您的博客文章。但是如果你想要一个静态的页面。(欢迎或启动页面),您可以在 管理 > 选项 > 阅读 中设置。
永久链接
默认的 WordPress使用 www.yoursite.com/?p=123
为您的帖子URL,这不是 URL或搜索引擎友好的链接。您可以通过Admin >选项> Permalinks更改 permalks设置。就个人而言,我喜欢将permalink设置为: /%category%/%postname%/
栏目前缀
默认的 WordPress类别前缀是“类别”(即, yoursite.com/category/cat-name/
)。在分类库中输入 “文章”(选项 > permalinks),您的类别URL将变成:yoursite.com/article/cat-name/
想了解更多吗?
WordPress Codex始终是学习 WordPress的最佳场所。谢谢 WordPress和快乐的博客!
原文:http://webdesignerwall.com/tutorials/wordpress-theme-hacks