个人工具
名字空间
变换
操作

WordPress:Pages

来自站长百科
跳转到: 导航, 搜索

导航: 上一级 | WordPress | 首页 | WordPress中文论坛 | WordPress主机 | CMS程序 | 论坛程序 | ECShop | ShopNC | PowerEasy

目录

介绍

Pages, 或者叫 WordPress Pages 就象 Posts一样,除了功能比Posts多的多以外,它们不属于普通的博客时间列表范围。你可以使用Pages来组织和管理任意数量的内容。在WordPress 1.5.中,Pages加入了一些新的功能。

但是Pages在WordPress是如何运作的呢?本文的目标就是尝试解释Page是什么,不是什么,描述Page可做些什么,并举例说明。


Terms Used in this Article

为了明确起见,通过本文:

  • "page", 使用小写的"p", 可以描述 任何 HTML 网站上的内容
  • "Page", 使用大写的 "P", 特指 "WordPress Page", 本wiki页面详细的WordPress功能。 当使用期间不明确的时候使用"Page"的粗体.

有关更多的Page术语,参见有关术语的记录.

Page是什么?

Posts是时间导向的对象。你在某一时间写下它们,时间确定了它们的上下文。

Pages,从另一方面说,更多的是用来表述有关你自己的或者你的网站,不知原因的,无时间的一直可用的信息。举例来说,你写了一篇Post描述了某个早晨你做了什么或者想了什么("Breakfast was good"),但是在Page上你可能会写一些与时间无关的内容("This site is about breakfast").

当然了,这是“你的”WordPress;你可以用它的功能来实现任何你想做的事。Pages可以用来显示任何你想现在在你的博客“外部”的信息。试验,创造,还有,永远充满乐趣。

网站上的Pages可能包括的内容有:版权、法定信息、再版许可、联系信息、关于本人、关于网站、无障碍声明或者其他东西。

通常说来,Pages和Posts是非常相似的,它们都有标题和内容,可以使用网站的现有模板来保持整个网站的风格的一致性。尽管如此,Pages仍然有几点主要的特性明显区别于Posts

Pages简介

Pages 是什么

Pages 不是什么

  • Pages 不是 Posts, 也不是从其他大的作品中的摘录。同时,它不在你的博客的主页上循环。(注: 通过使用Inline Posts 插件,在Pages 中可以包含Posts 。)
  • Pages 不能和类别联系到一起也不能指派标签。该组织结构的页面只能来自他们的层次相互关系,而不是从标签或分类
  • Pages 不是文件。它们象文章一样存储在你的数据库中。
  • 尽管你能够把模板标签和PHP代码放入一个Page模板,但是你不能把他们放入一个Page内容中并且期望它们能运行。

创建 Pages

要创建一个新的Page,先登陆有足够的管理权限的WordPress帐户来创建新的条目。在管理员面板中,选择书写Page子面板,就可以创建新的Page了。


将Pages 列在主页上

WordPress会自动的在主页上生成一个Pages列表,例如在边栏,使用一个叫做wp_list_pages()模板标签,参见wp_list_pages页面,是有关:

  • 如何分类Pages列表, (想完全自定义Pages列表的顺序,请在Write > Write Page administration panel useful中找到"Page Order"这项)
  • 如何在一个列表中排除 (or '隐藏') Page。
  • 如何控制哪个Pages 将被显示(i.e., 所有的 Pages 或者只是特定的子页面)
  • 如何控制你的Page层次中,列表处在第几层

当然,你也可以使用一个HTML连接手动连接到Pages。例如,如果你想让你的版权页面显示在页脚,你可以这样写:
If you do not have Permalinks set up

<a title="Copyright information" href="wordpress/?page_id=14">Copyright 1996-2006</a>

注意:要想让友好连接页面正常工作,.htaccess文件必须是可写状态,否则你必须每次创建新的Page的时候更新一次你的.htaccess文件。

Pages的组织

就象你的分类中有子类一样,在你的Pages中同样也有子页面,以创建更多层的页面。

例如,假设你正在为一个旅游机构建立一个WordPress网站,并且想为每个大陆和国家建立一个单独的Page,这样这个旅游机构可以作出旅游安排。可以建立一个叫做" Africa "的Page,在这页面上描述到非洲旅游的大致信息。然后你再建立一系列的Pages作为" Africa "的子页面,可以包括"Lesotho", "Cameroon", "Togo", and "Swaziland"等等,另外一个单独的Page叫做" South America ",子页面可以是"Brazil", "Argentina", and "Chile",那么你的网站排列如下:

  • Africa
    • Cameroon
    • Lesotho
    • Swaziland
    • Togo
  • South America
    • Argentina
    • Brazil
    • Chile

开始的时候,先查看管理 > 书写 > 书写Page 面板,在面板的右上方点击"Page Parent"下拉菜单,其中包含了你的网站上所有已经创建的Page,要想从现Page转向一个子页,或者是"父"页面的"子"页面,选择下拉菜单中的适当的页面就可以了。如果你从列表中指定一个不同于"主页面 (无父页面)"的父页面,那么你现在正在编辑的页面将成为这个选中的页面的子页。当页面[[Wordpress:#Listing Your Pages on Your Site|列出]]时,子页将被嵌套在父页中。页面中的 友好连接也会反映出了这个页面层次。

上述例子中,Cameroon 页面的友好连接是: http://example.com/africa/cameroon/

页面模板

单独的页面可以设置成使用一个你自己建立在你的主题中的详细的自定义页面模板 (一个 PHP 模板文件, 比如 snarfer.php) (参见下文有关如何建立自定义模板 建立自己的页面模板 )。新的页面模板将覆盖主题中的默认page.php页面模板,参见下面的 用什么模板来显示特定的页面?,准确找出哪种模板将被用到,请先阅读下文,答案就会揭晓:)

WordPress可以设置成使用不同的页面使用不同的模板。在书写 > 页面书写管理面板的底部(或者是在边栏,取决于你使用了何种版本的WordPress ),是一个下拉菜单"页面模板",显示特定的页面时从那里你可以选择使用哪种模板。

注意:为了进入模板选择器,在现有主题中至少必须有一个可用的自定义页面模板。(参见下面的建立自己的页面模板来学习如何建立页面模板。)

默认主题页面模板

默认主题有三个页面模板可用:

  • page.php -默认主题模板: 显示页面内容
  • archives.php - 忽略页面内容,根据日期和标题(分类)显示文档。
  • links.php - 忽略页面内容,使用 得到连接列表显示连接。

页面用什么模板显示?

WordPress会在现用的主题中寻找几个模板文件。第一个找到的用来显示给定的页面,WordPress会按照下列顺序寻找文件:

  1. 该页面选中的 "页面模板"
  2. page.php
  3. index.php

创建自己的页面模板

定义每个页面模板的文件可以在主题目录中找到。想要建立一个新的模板,你必须建立一个新文件。让我们把第一个页面模板命名为snarfer.php。在snarfer.php文件的顶部,输入:

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

上边的代码定义了snarfer.php文件为"Snarfer"模板。当然了,"Snarfer"可以被替换为任何其他的文字来改变页面模板的名字。这个模板的名字将会出现在主题编辑器中,作为编辑这个模板文件的连接。

这个文件可以被命名为几乎任何以.php为扩展名。(参见 主题文件名保留字,可以找到你不可以用来作为文件名的一些字段;这些是WordPress为特殊目的而保留的特殊文件名)。

上边五行代码后边如何编写,取决于你。剩余的代码将控制使用Snarfer页面模板的页面如何显示。参见 模板标签可以找到可用的各种实现此目标的WordPress模板功能的描述。你会发现复制其他模板(可能是 page.php or index.php)的内容到snarfer.php,然后把这五行代码加入代码的开头部分更加方便。那样的话,你只需要更改HTML和PHP代码,而不用重头开始再创建新的文件。示例详见下部。一旦创建了页面模板,并放入了主题文件夹,创建或者边界页面的时候就可以使用它了。(注意: 创建或者编辑页面时,页面模板操作选项并不显示,除非有至少一种模板使用上述方法定义后才可以使用。)

==页面和模板示例==


以下是示例列表,随时可添加

归档内容

显示页面目录的页面模板在最上边,然后是一个按月或者分类的归档列表。这样设计对WordPress的默认主题(aka Kubrick)起作用,可能对其他很多主题有少许修改。

保存如下代码到 arc-cont.php:

<?php
/*
Template Name: Archives with Content
*/
?>

<?php get_header(); ?>

<div id="content" class="widecolumn">

 <?php if (have_posts()) : while (have_posts()) : the_post();?>
 <div class="post">
  <h2 id="post-<?php the_ID(); ?>"><?php the_title();?></h2>
  <div class="entrytext">
   <?php the_content('<p class="serif">Read the rest of this page &raquo;</p>'); ?>
  </div>
 </div>
 <?php endwhile; endif; ?>
 <?php edit_post_link('Edit this entry.', '<p>', '</p>'); ?>

</div>
<div id="main">

<?php include (TEMPLATEPATH . '/searchform.php'); ?>

<h2>Archives by Month:</h2>
  <ul>
    <?php wp_get_archives('type=monthly'); ?>
  </ul>

<h2>Archives by Subject:</h2>
  <ul>
     <?php wp_list_cats(); ?>
  </ul>

</div>
<?php get_footer(); ?>

作为CMS使用WordPress

有了1.5及以后版本的新页面功能,将更加容易的使用WordPress进行基本内容管理。

使用页面作为首页 (仅限版本2.1及以上)

WordPress 2.1加入了方便的设置任何页面作为首页的选项。在Wordpress管理界面中找到Options > Reading。在首页分类下,你可以选择设置任何(发布过的)页面或者帖子作为首页。默认的设置是显示最新的博客帖子。

注意:在2.1版本中,有条件的is_home()功能在管理面板中首页设置中不再返回真值。为了与2.1以前的版本的"front"即主页的返回真的功能保持一致,使用首页插件或者使用is_page(home),这样你所想要的首页就会成为"主页"了。

下面的章节将阐述如何与2.1以前的版本的功能性保持一致

WordPress 2.1之前的版本中使用一个页面作为首页

使用静态首页插件,可以设置任何页面为"首页"。插件修改主页查询,然后粘贴这个带有简短说明的"主页"页面到首页。

当该页面作为主页显示的时候,如果一个文件名为home.php的页面模板存在于现用的主题中,插件就会覆盖页面设置页面模板,然后使用home.php替代它。如果该页面象标准页面被访问时,页面设置页面模板仍然适用。(如, http://example.com/home/)

作为插件的替代,WordPress会识别你的模板目录中的"home.php"文件,并使用它而不使用index.php来作为首页的主题。尽管如此,如果你的主页不是你的博客,不论你喜欢与否,home.php模板都将应用于你的博客。使用 帖子查询() 模板标签,你可以在调用循环之前访问任何页面。如:

<?php 
     query_posts('pagename=home'); 
?>

将调用含有页面名字"home"的帖。参见 贴查询()查看更多有关模板标签的示例。

home.php文件并不是2.1以上版本所必须的。使用控制面板可以设置你的静态主页。

包含一个页面

你也许也想在你的网站上的多个地方包含多个页面,那样,你就可以更方便的编辑你的网站了。有一种叫做Include Page的插件,可以让这变的简单。Include Page改进版可以找到这个插件更新的版本

让你的博客出现在非根文件夹

假如你有一个WordPress在http://example.com/运行,再假设你想要你的博客定位在http://example.com/blog/,然后希望别的页面可以在http://example.com/page1 浏览。


首先你要做的是建立一个主页。你可以通过在主题目录中建立一个home.php来实现。下一步,建立一个博客模板。最简单的方法就是在主题目录下建立一个名字为blog.php的文件,包含以下内容

<?php
/*
Template Name: Blog
*/

// Which page of the blog are we on?
$paged = get_query_var('paged');
query_posts('cat=-0&paged='.$paged);

// make posts print only the first part with a link to rest of the post.
global $more;
$more = 0;

//load index to show blog
load_template(TEMPLATEPATH . '/index.php');
?>

登陆WordPress使用模板"blog"建立一个名为"Blog"的页面,这样就完成了。最后要做的就是更新友情连接的结构,以"/blog/"开头,如"/blog/%year%/%monthnum%/%postname%/"。现在你就有了一个带有独一无二的首页和逻辑结构的博客内容的WordPress管理的CMS了。

如果你正在使用<!-- more --> 快捷标签,来把东西放进你的文章,你会想包含全局变量$more并且把它设置为零。(如上代码所示)。否则,整个的文章将会显示在你的博客主页上。

如上所述,home.php文件在版本2.1以上时不是必须的。如果blog.php和 home.php同时在2.1以上版本使用就会产生冲突,造成blog.php模板页面显示为空白。

关于术语

一个页面可以是静态的 或者动态的。静态页面是那些一次性创建出来,并且不用每个人访问后都重新生成的。相对的,动态页面每次被访问后需要重新生成;生成什么样的页面的代码由作者声明,但不是实际上的页面本身。这些使用每访问一次就重新评估的扩展PHP代码,内容根据新的访问随时生成。

WordPress中几乎所有的东西都是动态生成的,包括Pages。你或者其他人写的任何东西 (Posts, Pages, Comments, Blogrolls, Categories, etc.)都存储在你的MySQL数据库中。当有人进入你的网页时,数据库信息就会被WordPress 模板主题中调用,来生成要求的页面。这样,WordPress信息是动态的,包括了你的Pages中的信息。

静态页面的例子就是你写用来添加到动态生成WordPress 页面中的 HTML文件(不包括任何PHP代码) 比方说"About Me" 页面.纯静态页面的问题在于它们很难维护.你做出的任何有关WordPress设置, 主题模板的任何改动,不能只在HTML页面中传递. WordPress 的Page功能被扩展了,一定程度上的解决了这个问题.通过使用Pages,使用者不再每次作出更改后必须更新他们的静态页面了.取而代之的,如果适当的写他们的动态页面将连同他们的博客的其他部分一起更新。

不论动态页面的本质如何,很多人仍然把它们当作静态页面。在页面内容发布来说,静态和动态意味着上边描述了什么。更广泛的看,静态意味着"缺乏变化的特点",很容易看出这个定义如何影响描述网页形式时词的应用。同样也很容易看出为什么人们把Pages认为是静态的,帖子的随时更新,但是从有关你的网站显示的信息被显示后,Pages却一直存在。(如:有关你自己的信息,描述你的网站的信息)

换句话说,Page包含了静态信息,但却是动态生成。这样,不管是静态或者动态,都可以用来描述WordPress Page的本质。尽管如此,为了避免混淆,再加上当它们的内容有些情况下是静态的时候,Pages本身却是是动态的,本文不认为Pages是静态的。

留言