Forfly 翔!
Mr. Le's personal blog, life, love and others. 人生就像是旅行,不必在乎目的地,只在乎沿途的风景!
All Rights reserved by Mr. Le

wordpress优化技巧

动态 title 标签 我将使用条件标签在 header.php 中输出动态的 title 标签。即改变WordPress缺省Title顺序以及在日志或页面的显示顺序,更加有利于SEO(搜索引擎优化)效果: 第一种方式(我的SEO博客正在使用的title效果,其中print” ” 里面的内容即你自己设定的首页title)

<title><?php if (is_home()||is_search()) { print "SEO/SEM搜索引擎优化交流"; } else { wp_title(''); print " | "; bloginfo('name'); } ?></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>

动态内容 如果你想包含一个只在首页上显示的文件,使用下面的代码(’file.php’为要调用的php文件):

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

动态高亮菜单 我在 Best Web Gallery 中使用了动态高亮菜单。假如当前页面是首页(Home)或目录页(Category)或存档页(Archive)或搜索结果页(Search)或单篇日志页面(Single),class=”current” 属性将会自动加入到第一个列表条目的 li 标签中,它将会高亮显示“Callery”按钮;假如当前页面的缩略名是“about”时,class=”current” 属性将自动加入第二个列表条目的 li 标签中。

<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>

高亮特定的日志 假设 ID 为 2 的目录是你的特别目录,你想添加一个 CSS 类使得该目录下的所有日志均高亮显示,那么你可以在 WordPress 的循环中使用下面的代码片段:

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

个性日志模板 假设你想使用不同的单篇日志模板(single.php)显示不同目录下的文章,你可以使用 in_category 函数来判断某篇日志处于哪个目录,然后调用不同的单篇日志模板。在默认的 single.php 文件中,敲入下面的代码,目录 1 的文章将使用 single1.php 模板,目录 2 的文章将使用 single2.php,其它文章将使用 single_other 模板:

<?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-2.php 这种形式命名的文件,category-2.php 用来显示 ID 为 2 的目录,category-3.php 用来显示 ID 为 3 的目录,依次类推。 在第一篇日志后显示 Google 广告 很多人向我询问如何实现在第一篇日志后显示 Google 广告,很简单,你需要在循环中使用一个变量 $loopcounter,当 $loopcounter 小于等于 1 时,添加 Google 广告代码文件:

<?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 篇日志:

<?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>

显示特定日志 假设 ID 为 2 的目录是你的特别目录,你想在侧边栏中显示该目录下的 5 篇最新日志,那么把下面的代码写进 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>

排除特定的目录 你可以使用 query_posts 来排除显示特定目录的日志,下面的代码将排除 ID 为 2 的目录,请注意 ID 前面的负号:

<?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'); ?>

自定义字段 自定义字段 Custom_Fields 是 WordPress 最强大的功能之一,它允许你为日志的内容或摘要附加额外的数据或文本。有了自定义字段,你可以自由地把 WordPress 变成一个 CMS 系统。在 Web Designer Wall,我使用自定义字段为每篇日志显示一张图片并链接至它。

2010-08-21

发表回复