WordPress主题使用模版标签从数据库中检索内容。这里说的内容可以是任何数据,小到博客标题,大到一个完整的侧边栏。模板标签是获取数据到主题中的首选方法,模版标签的便利之处:

WordPress主题开发教程 — 模版标签

  可以打印动态内容。

  可以在多个主题文件中使用。

  分解主题到更小,更容易理解的部分。

  什么是模板标签?

  模板标签是一段代码,控制WordPress从数据库中获取内容,从组成上了来说,模版标签可以分为三部分:

  PHP代码标记

  一个WordPress函数

  可选参数

  我们可以使用模板标签来包含主题文件或数据库中的信息。

  例如,get_header()标签指示WordPress获取并包含header.php文件,同理get_footer()标签指示WordPress获取并包含footer.php文件

  除此之外,还有一些其他类型的模板标签:

  the_title():指示WordPress从数据库中获取标题,然后显示在页面中。

  bloginfo('name'):指示WordPress从数据库中获取站点标题,并在页面中显示。

  注意上面第二个模版标签,我们会在括号中看到一个参数,该参数可以让我们做两件事:

  指定具体的信息

  以正确的格式显示信息。

  下面将我们将详细介绍参数,但请注意,我们可以发送WordPress专有指令,以了解数据的呈现方式。

  为什么使用模板标签?

  模版标签可以封装特定内容模块的所有代码,这种封装可以让被封装的内容可以在各个主题文件中使用,也使主题更容易维护。

  创建一个header.php文件,然后使用get_header()在其他主题模版文件——如single.php、page.php、front-page.php——中引用,比在每个模版文件中复制粘贴代这些代码容易得多,维护起来也更轻松,每当header.php被修改时,这些修改都会体现在每一个包含他的模版文件中。

  使用模板标签的另一个原因是可以很方便的显示来自数据库的数据。在title标签中,我们可以手动包含title标记,如下所示:

  <title>My Personal Website</title>

  但是,这样做意味着我们需要修改网站标题时,就必须编辑模版代码。相反,使用模版标签bloginfo(‘name’)输出标签会很方便,该标签会自动从数据库中获取并输出网站标题。使用了这个标签后,我在WordPress设置中更改网站的标题就可以了,而不用再修改模版文件了。

  如何使用模板标签

  模版标签使用起来非常简单,在任何一个模板文件中,用一行php代码即可使用模板标签来。如,使用以下代码即可在模版文件中包含header.php的内容:

  get_header();

  参数

  一些模板标签可以让我们传递参数。参数是确定从数据库检索哪些内容的额外信息。

  例如,bloginfo()模板标签允许您传入一个参数,告诉WordPress需要获取的信息。如果您要输出网站名称,传入“name”参数即可,如下所示:

  bloginfo('name');

  如果需要获取站点运行的WordPress版本,传入参数“version”就可以了:

  bloginfo('version');

  模版标签可以有参数,也可以没有,每个模版标签的参数也各不相同,我们可以在WordPress代码参考中的模板标签页面中找到某个标签可用的参数列表及其可以执行的操作。

  在循环中使用模板标签

  许多模板标签必须在WordPress循环中才能正常使用,也就是说,他们需要作为php“循环”的一部分包含在模板文件中,该循环根据其内部的模版标签生成用户看到的页面。

  WordPress循环一般以如下代码开始:

  if(have_posts()):

  while(have_posts()):

  the_post();

  在循环中工作的模板标签必须位于循环中才能正常使用,在下面循环结束之前:

  endwhile;

  else:

  _e('Sorry,no posts matched your criteria.','wprs');

  endif;

  需要在循环内部工作的标签有:

  the_content()

  the_excerpt()

  next_post()

  previous_post()

  这些函数需要在循环中工作的主要原因是它们需要全局post对象,WordPress循环会自动设置这个post对象。

  其他标签不需要在循环中工作(如下面两个),可以在模版中的任何地方使用。如侧边栏中,页头或页脚中。

  wp_list_cats()

  wp_list_pages()

  这些标签通常不需要全局post对象。

  更多技术教程,请关注技术教程网www.jishujc.com