chevron-up bell reply instagram twitter2 feed3 finder search-25px-p0
换了主题,回归原生评论系统。

使用 WordPress 页面模板

2009-01-17 . 阅读: 4,737 views

使用 WordPress 页面模板

[作者:冰山上的播客]

如果你曾经设计过模板,你可能遇到过这样的要求:

能让每个页面有不同的设计吗?

恩,如果你是用 page.php 来处理你所有页面的外观的话,答案肯定是“no”,但是如果你使用不同的页面模板,你当然可以使得每个页面的样子如你所望

举个例子,比如你有个客户想他所有的页面除了传记(bio)页面之外都有侧边栏,在他的传记页面,他想内容的宽度能够扩展到侧边栏的位置。具体步骤如下:

  • 在你的主题文件夹中创建一个新模板,命名为 bio.php (或者你喜欢的名字)
  • 然后把 page.php 模板中的内容拷贝到 bio.php 文件中。
  • 接着,找到模板文件中调用 sidebar 的地方,去掉或者注释它(如果不知道怎么做,看下我们的主题教程了)
  • 你可能需要找到 content div 标签,并手动给它增加一个 width 样式来扩展宽度以便能够占满整个 container div 标签。

完成之后,到 bio.php 的最上面插入以下代码:

<?php
/*
Template Name: Bio
*/
?>

当你完成添加代码之后,保存你的文件并上传到你服务器上的当前主题文件夹下。

现在是时候去使用 WordPress 管理界面让 bio 页面使用 Bio 页面模板,假如你不知道的话,这里是具体做法:

进入创建新页面,或者编辑 bio 页面(假如你已经创建了),在右边,你会看到一些不同的标题,如平路,页面状态,页面密码,上级页面,页面模板,页面缩略名,页面作者,页面顺序。点击页面模板的边上的加号,在下拉列表中找到 Bio,选择它并点击保存。

现在你的 bio 页面和你其他的页面使用不同的主题。

很明显,很多人使用该技巧,特别是那些把 WordPress 当作 CMS 而非博客来使用的客户。使用你的想像力,你可以用它创建出一些非常有创意性的东东。

WordPress 页面(Page)技巧

以下文字摘译自 WordPress 官方开发文档中 wp_list_pages 部分

显示页面列表

  1. <?php wp_list_pages(); ?>

默认用法:

  1. $defaults = array(depth => 0, show_date => ,
  2. date_format => get_option(date_format),
  3. child_of => 0, exclude => ,
  4. title_li => __(Pages), echo => 1,
  5. authors => ,
  6. sort_column => menu_order, post_title);

默认效果:

  • 列出所有页面,不考虑层次
  • 不显示创建日期
  • 没有对子页面的限制
  • 没有隐藏页面
  • 页面列表表名叫做”Pages”
  • 显示调用结果
  • 对作者没有任何限制
  • 排序:页面编号及页面标题
  • 增序排列
  • 页面以缩进形式展现
  • 包括所有页面
  • 没有特殊的key/meta值的限制

我们可以对这些参数进行设置,使页面列表成为想要的样子。

1.改变页面列表的标题:

  1. <ul>
  2. <?php
  3. wp_list_pages(title_li=myPages); ?>
  4. </ul>

2.包含或排除一些页面

  1. <ul>
  2. <?php
  3. wp_list_pages(exclude=5,6); ?>
  4. </ul>

这样pageid为5,6的页面将不被列出。
3.对页面进行排序

  1. <ul>
  2. <?php
  3. wp_list_pages(sort_column=post_date&show_date=created); ?>
  4. </ul>

sort_column指定了排序的字段。可选择menu_order,post_date等。若用show_date字段,show_date参数要进行设置。

WordPress的标签功能: 在模板里加入<?php wp23_related_posts(); ?>显示同一标签下的文章

控制 WordPress 的页面显示

1、怎么把特定页面从pages页面列表中隐藏?

登录后台在页面管理界面,找到你想隐藏的page的ID,譬如2、4等。然后在header或者其他页面找到wp_list_pages代码,修改成.

<?php wp_list_pages(’title_li=&depth=1&exclude=2,4′);?>

2、如何控制pages的排列顺序?

登入后台在页面管理界面,修改你想要排序的page页面,在右方点击Page Order,修改值为你想排的顺序。如此修改其他页面的Order值。然后在header或者其他页面找到wp_list_pages代码,修改成.

<?php wp_list_pages (’title_li=&depth=1& sort_column=menu_order’);?>

这样pages页面就会按照你的排序列表。

3、如何显示页面的子页面?

将上面代码中的&depth=1取消就可以了。这是用来限制子页面显示的。

在建立的page页面中显示指定分类的方法是:

首先建立一个pages的模板,保存为指定的文件名,然后在Wordpress后台建立一个page页面,选择刚才建立的模板,模板的内容如下,这样就搞定了。我也正在修改当中,慢慢来吧,慢慢发现Wordpress的更多的功能吧。

<?php
/*
Template Name: 分类 page
*/
?>
<?php get_header(); ?>
<div id=”content”>
<div class=”entry”>
<h2>标题</h2>
</div>
<?php
$lastposts = get_posts(’numberposts=5&category=171′);
foreach($lastposts as $post):setup_postdata($post);
?>
<div class=”entry”>
<div id=”post-<?php the_ID(); ?>”>
<h1 id=”PostTitle”><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Permanent Link to <?php the_title(); ?>”><?php the_title(); ?></a></h1>
<div class=”the_post_the_content”>
<?php the_content(); ?>
</div>
<div class=”postmetadata”>Posted in <span class=”cty”><?php the_category(’, ‘) ?></span> | <?php edit_post_link(’Edit’, ”, ‘ | ‘); ?> <span class=”cmt”><?php comments_popup_link(’No Comments »’, ‘1 Comment »’, ‘% Comments »’); ?></span>
<span class=”cmt”>
<?php
if(function_exists(’the_views’))
{
the_views(’views’, true); }
?>
</span>
<span class=”time”>Time: <?php unset($previousday); printf(__(’%1$s – %2$s’), the_date(”, ”, ”, false), get_the_time()) ?></span>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

其中$lastposts = get_posts(’numberposts=5&category=171′);是可以设定参数的,numberposts=你想现实的日志 的数量,category是你想要现实日志的分类id,好啦,先写到这里,其他的我也正在琢磨当中,大家一起学习吧。

使用Wordpress的体会,最好使用linux的服务器,执行效率真的和windows下面差太多了。而且可以使用rewrite等功能,linux服务器可以把wordpress的各项功能发挥到极致。

这里把具体步骤记录一下:

①、在自己的模板下找到pagetemplate.XXXXXXXXX.php的文件,我的模板下有 pagetemplate.simpletagging.php,pagetemplate.tagcloud.php, pagetemplate.tagtabs.php,直接复制一个,注意修改头部名字,Template Name:links,格式和下面1,2,3行保持一致!

 1: <?php
 2: /*
 3: Template Name: links
 4: */
 5: ?>
 6: <?php
 7: get_header();
 8: ?>
 9: 
 10: <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
 11: <div class=“post” id=“post-<?php the_ID(); ?>”>
 12:  <h3 class=“storytitle”><a href=“<?php the_permalink() ?>” rel=“bookmark”><?php the_title(); ?></a></h3>
 13: 
 14:  <?php the_content(”); ?>
 15:  <?php get_links_list(); ?>
 16: 
 17: </div>
 18: 
 19: <?php endwhile; else: ?>
 20: <p><?php _e(‘Sorry, no posts matched your criteria.’); ?></p>
 21: <?php endif; ?>
 22: 
 23: <?php posts_nav_link(‘ &#8212; ‘, __(‘&laquo; Older Posts’), __(‘Newer Posts &raquo;’)); ?>
 24: 
 25: <?php get_footer(); ?>

②、如果希望links页面可以留言,那在上面18行添加:<?php comments_template(’links.php’); // Get wp-comments.php template ?>,这里如果使用默认评论的话,直接用:<?php comments_template(); ,不需要参数,links.php从single.php(独立文章页)复制,改文件名为links.php或者自己喜欢的名字

③、增加一个page,标题为“友情链接”或“links”,内容随便写自己想写的,例如“欢迎在此申请友情链接”等,“page template ”(也就是模板页)选择”links”,页面缩略名填“friendlinks”(可省略),搞定了~~~

分享到: 更多

左岸

爱读书,爱生活!

发表评论





3 Comments On 使用 WordPress 页面模板

  1. Pingback: 能让每个页面有不同的设计吗? | Valen.

  2. 不错,写得详细,想知道我怎么吧底部的文字修改一下。

  3. 很有用哦,谢谢了