wordpress页面模板制作教程

十度 wordpress 2015年12月20日 收藏

wordpress主题开发过程中,经常需要设计一个独立的页面来显示特定的内容。wordpress页面的使用你可以查看:wordpress后台使用教程之页面菜单
要为某页面新建一个自定义页面模板的话,你需要新建一个文件。现在我们将这个页面模板命名为snarfer.php。在snarfer.php文件顶部输入如下内容:

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

以上代码定义snarfer.php文件为”Snarfer”模板。”Snarfer”这个页面模板名称可以任意修改。该模板名称将出现在外观主题编辑器中,并作为编辑该文件的链接。

以上五行代码之后的内容可就是你自己的事啦。剩下的代码则是控制页面使用Snafer页面模板的显示方式。你可以查看一下模板标签中可用在这里的WordPress各类模板函数的介绍。你可以将其他模板(可以是page.php或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 »</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(); ?>

页面文章

页面模板可以制定特定的分类利用特定的模板显示文章.它能够用于WordPress的默认外观主题(aka Kubrick),相信只需稍加修改就能使用在很多其他的外观主题中。

将以下内容保存至pageofposts.php:

<?php
/*
Template Name: PageOfPosts
*/

get_header(); ?>

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

<?php
if (is_page('21') ) {
$cat = array(12);
} elseif ( is_page('16') ) {
$cat = array(32);
} elseif ( is_page('28') ) {
$cat = array(17);
} else {
$cat = '';
}

$showposts = -1; // -1 shows all posts
$do_not_show_stickies = 1; // 0 to show stickies
$args=array(
   'category__in' => $cat,
   'showposts' => $showposts,
   'caller_get_posts' => $do_not_show_stickies,
   );
$my_query = new WP_Query($args); 

?>

	<?php if( $my_query->have_posts() ) : ?>

		<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
			<?php
			//necessary to show the tags 
			global $wp_query;
			$wp_query->in_the_loop = true;
			?>
			<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
				<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
				<small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small>

				<div class="entry">
					<?php the_content('Read the rest of this entry »'); ?>
				</div>

				<p class="postmetadata"><?php the_tags('Tags: ', ', ', '<br />'); ?> Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?>  <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p>
			</div>

		<?php endwhile; ?>

		<div class="navigation">
			<div class="alignleft"><?php next_posts_link('« Older Entries') ?></div>
			<div class="alignright"><?php previous_posts_link('Newer Entries »') ?></div>
		</div>

	<?php else : ?>

		<h2 class="center">Not Found</h2>
		<p class="center">Sorry, but you are looking for something that isn't here.</p>
		<?php get_search_form(); ?>

	<?php endif; ?>

	</div>

<?php get_sidebar(); ?>

<?php get_footer(); ?>