如何使用WordPress页面模板

时间: 2013-12-2 分类: WordPress技术 作者: SAI

TAGS:

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

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

恩,如果你是用 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”(可省略),搞定了~~~

Javin

本文作者: SAI

推崇以用户为中心的设计理念,专注于用户体验设计,游走在视觉设计与前端开发之间。我要投稿

除非特殊注明,本文版权归原作者所有,欢迎转载!转载请注明版权以及本文地址,谢谢。
转载保留版权:塞纳» 建站技巧 » WordPress技术 » 如何使用WordPress页面模板
本文地址:http://www.saiody.com/?p=759

返回顶部