首页    >    新闻资讯    >   关于修改WordPress主题你需要知道的十件事

关于修改WordPress主题你需要知道的十件事

不满足于WordPress默认功能的站长们都会对WordPress强大的扩展功能感到好奇,进而尝试自己修改主题。 对WordPress主题进行修改时,没有必要精通PHP,你需要的,只是一点基础的HTML知识和一些解决问题的常识。

下载一份WordPress主题文件的副本,保存,然后打开这些主题问题,根据下面的步骤以及WordPress手册中的说明逐步了解主题文件的运转以及修改方法。

这篇文章是关于WordPress你需要知道的100件事系列的一部分。


1. Widgets实现了(通常位于侧栏/页脚中的)内容/插件的拖拽功能


这是基本知识,不过的确还有人不知道什么是widget(小工具)或者如何使用widget。 WordPress主题支持widget功能,如果你进入WordPress网站后台"外观"下的"小工具"选项,会看到所有支持拖放widget的版块。 WordPress自带若干核心widget(比如页面、分类、标签、最近文章等),各种插件也有自带的widget。


2. 一个WordPress主题可以有无限个支持widget的区域


Widget这个概念很简单,很多人也习惯于侧栏或者footer的widget小工具。 你或许不知道的是,WordPress网站的各个部分都是支持widget的,你可以(字面意义)在任何位置上添加widget小工具,所添加的小工具数量也完全由你自己决定。 关于实现WordPress多区域widget的具体方法,请参考这篇文章。


3. 支持widget的区域可以是"有限制的"(针对特定条件或页面)


有时候你可能需要只在特定条件下显示widget。比如主页专用widget,或者特定文章/分类/标签页专用widget。 这时候你可以利用WordPress的条件标签

在这种情况下,可以在functions.php里使用与注册多区域widget时相同的代码,不过之后需要在调用widget区域的代码内添加条件语句代码。 仍然使用上一个例子,如果调用widget的区域是footer部分,并且你只需要在主页的footer上实现显示效果,需要用到的是下面这段代码:

<?php // 只让主页的footer支持widget

  if (is home() {

	if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Footer Widget') ) : ?>
<?php endif; ?>

  } else {
  }

4. WordPress 3.0以上版本添加了自定义"菜单"功能(类似于widget,但为导航专用)


WordPress 3.0版本引入了WordPress菜单(导航菜单)功能。 。 和widget一样,你也可以通过在functions.php文件注册菜单——添加到主题页面代码这样的步骤,在WordPress主题的任何部分添加菜单区域。 同样你也可以"有条件地"显示菜单区域(方法同第3点)。


5. WordPress核心主题文件包括index.php,single.php,page.php,header.php,footer.php,style.css


有些WordPress主题结构非常复杂,有些却只包括几个文件。 如果你有兴趣,可以进一步了解WordPress主题结构与工作机制。 关于WordPress主题的结构解析,请参考这篇文章这篇文章


6. 你可以自定义用于特定条件的header、footer和样式表


这仍然会用到WordPress条件标签。 通过在WordPress主题代码里使用条件标签语句,可以在主题代码里创建并使用多个header、footer甚至样式表。

假设你希望主页的header部分不同于网站其他页面,只需要在index.php文件里加上:

<?php

  if (is home() {

	get_header(home);

  }  else {

	get_header();

  }

然后将header.php另存为header-home.php,进行相应代码添加或改动,然后上传到主题目录下即可。 对footer、侧栏、样式表等也可以使用同样的方法。

下面是WordPress手册中对相关函数的介绍:

get_header
get_footer
get_sidebar
get_stylesheet


7. 利用自定义主题页面"模板"可以显示特别的页面


你可以利用很多方法使某个页面看上去与众不同或者具有特别功能。 也许你可能想要很多个与众不同的页面。 你可以根据主题创建一个页面模板,然后在需要时把这个模板指派给某个页面。

步骤如下:

1. 从主题文件中下载一份page.php文件,另存为page-test1.php(或者其他任何名字)。
2. 在一个文本编辑器(例如Notepad)中打开这个文件,在文件顶部添加以下内容:

<?php
/*
Template Name: Test 1
*/
?>

然后保存文件并上传到主题目录下,之后你可以在后台编辑任何静态页面。 在右侧的"页面属性"下可以看见一个叫做"模板"的下拉式菜单,如果刚才文件上传成功,你会看见一个叫做"Test 1"的新模板。 选中这个模板然后更新页面,页面重新加载后新的模板就派上用场了。

你可以为不同页面创建不同的主题页面模板,然后在后台匹配使用。


8. 你可以设置主循环显示的文章数量


大多数WordPress用户都适应了一个事实:每个存档类型的页面(主页、分类页、标签页等)一次显示十篇文章。 首先你需要知道的是(如果你还不知道),在所有主题页面中,"主循环(the loop)"是调用这些文章的代码主干。

你可能不知道的是,不用the_loop而用wp_query函数也可以显示任何类型的文章,例如:

//仅检索指定页面

<?php
$args = array(
	'post_type' => 'page',
	'post__in'  => array( '595', '33', 44 )
);
$the_query = new WP_Query( $args );
?>

//显示某个作者的文章

$query = new WP_Query( 'author=123' );

//显示若干个作者的文章

$query = new WP_Query( 'author=2,6,17,38' );

//显示指定分类下的文章

$query = new WP_Query( 'cat=4' );

//显示指定标签下的文章

$query = new WP_Query( 'tag=cooking' );

甚至可以用wp_query来显示近期文章,例如:

<?php
   $recentPosts = new WP_Query();
   $recentPosts->query('showposts=3');
?>

<?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
   <li></li>
   <?php endwhile; ?>

9. 你可以设置每一篇文章(正文或摘要)的显示效果


每个包含the_loop的WordPres主题文件都通过特定函数分别调用文章的各部分内容。 如果你看见function the_content,这表示要显示的是文章的完整内容。 把其中的content改成excerpt,页面显示的内容会变成文章的摘要而不再是全文。

如果需要在主页上更改为显示摘要,就在index.php里把the_content改成the_excerpt。如果是存档页,就修改archive.php文件。如果要求搜索结果显示摘要,就修改search.php,以此类推。


10. 做任何改动前一定要备份


不要害怕修改WordPress主题。 不过做任何修改前,请在本地桌面上备份主题文件,然后进入后台"外观"菜单下的编辑选项慢慢研究吧。

来源

WordPress啦编译

分类:新闻资讯

标签:, , ,

* 版权声明:作者WordPress啦! 转载请注明出处。