>  기사  >  CMS 튜토리얼  >  WordPress 테마 생성 전체 과정(5): header.php 만들기

WordPress 테마 생성 전체 과정(5): header.php 만들기

青灯夜游
青灯夜游앞으로
2023-02-21 10:21:471868검색

"워드프레스 테마 제작 전체 과정(4): 작은 테스트"에 대해 소개해 드렸습니다. 이번 글에서는 계속해서 "워드프레스 테마 제작 전체 과정(5): header.php 만들기"를 다루겠습니다. 함께 살펴보세요~

워드프레스 테마제작 전 과정(3): HTML 정적 템플릿 제작에서 다운로드한 .html 파일을 텍스트 편집기로 열어보세요. 모든 부분의 코드가 매우 유사하다고 생각하시나요? 실제로 유사한 코드의 이 부분을 추출하여 별도의 파일 header.php에 넣을 수 있습니다. 각 페이지에서 이 코드 부분을 사용하려면 PHP의 include() 아니면 워드프레스의 <code>get_header()를 포함시키세요. 코드의 이 부분은 해당 지방의 모든 페이지에 작성되어야 합니다. 이를 변경하면 모두 변경하는 목적을 달성할 수 있습니다. .html 文件,不知道你有没有发现他们头部的代码都非常的相似呢?其实我们可以提取这部分相似的代码,放到一个单独的文件header.php中,各个页面想用这部分代码的时候再用php的include()或者WordPress的get_header()包含进去,省的每个页面里面都要写这部分代码,更改起来也可以达到一改全改的目的。

再次提醒:如果你不打算动手编写代码,这个系列教程就别看了,对你无益!

接着我们上次创建的主题目录wp-contentthemesAurelius,在该目录下新建一个php文件header.php,我们提取出index.php中的头部代码复制粘贴到header.php中,下面的代码就是目前header.php中的所有代码了(当然不同主题的头部代码都是不一样,在你实际的项目中可以自定决定):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Aurelius | Blog</title>
<!-- Stylesheets -->
<link rel="stylesheet" href="./style.css" type="text/css" media="screen" />
</head>
<body>
<div id="wrapper" class="container_12 clearfix">
	<!-- Text Logo -->
	<h1 id="logo" class="grid_4">Aurelius</h1>
	<!-- Navigation Menu -->
	<ul id="navigation" class="grid_8">
		<li><a href="contact.html"><span class="meta">Get in touch</span><br />
			Contact Us</a></li>
		<li><a href="blog.html" class="current"><span class="meta">Latest news</span><br />
			Blog</a></li>
		<li><a href="index.html"><span class="meta">Homepage</span><br />
			Home</a></li>
	</ul>
	<div class="hr grid_12 clearfix"> </div>
	<!-- Caption Line -->
	<h2 class="grid_12 caption clearfix">Our <span>blog</span>, keeping you up-to-date on our latest news.</h2>
	<div class="hr grid_12 clearfix"> </div>

再用文本编辑器打开index.phparchive.phpcontact.phpfull_width.phppage.phpsingle.php,删掉以上类似代码,改成:

<?php get_header(); ?>

好,现在打开你的测试博客主页,看看我们制作的主题是否还可以正常工作,答案是可以的,跟原来几乎没什么两样,但还是一片混乱。get_header()就相当于将header.php中的代码拷贝到当前的php文件。接下来,我们将仔细探讨header.php中的动态内容。header.php将会被所有的模板页面(主页、分类页、页面、标签页等)所包含,所以header.php中代码应该是动态,适合不同页面的,所以这里面需要用到PHP代码,而不是单纯的HTML。下面让我们一起来修改header.php

1、更改b2386ffb911b14667cb8f0f91ea547a7

我们都知道不同页面的title都是不一样,而且title的设置还会直接影响到SEO的效果,所以这里应该谨慎设置。下面提供一种SEO优化的title写法,将b2386ffb911b14667cb8f0f91ea547a7Aurelius | Blog6e916e0f7d1e588d4f442bf645aedb2f改成:

<title><?php if ( is_home() ) {
		bloginfo(&#39;name&#39;); echo " - "; bloginfo(&#39;description&#39;);
	} elseif ( is_category() ) {
		single_cat_title(); echo " - "; bloginfo(&#39;name&#39;);
	} elseif (is_single() || is_page() ) {
		single_post_title();
	} elseif (is_search() ) {
		echo "搜索结果"; echo " - "; bloginfo(&#39;name&#39;);
	} elseif (is_404() ) {
		echo &#39;页面未找到!&#39;;
	} else {
		wp_title(&#39;&#39;,true);
	} ?></title>

以上添加的php代码运用了条件判断,针对不同的页面采用不同title,这里解释一下这几个条件标签。

  • is_home():当前页面为主页时返回true
  • is_category():当前页面为分类页时返回true
  • is_single():当前页面为单文章页时返回true
  • is_page():当前页面为单页面时返回true

到目前为止,可能你对这些条件判断标签还没有深入的认识,也搞不懂到底是用了这些标签会对主题造成怎样的影响的,随着我们教程的进一步深入,你会慢慢理解的。如果你不喜欢上面title的写法,可以自行上网搜索相关代码:WordPress SEO title

2、更改样式表style.css路径

在此之前你看到的首页都是混乱的,原因是还没加载css样式。现在我们一起把样式加上。你可以在header.php中找到这一段代码:

<link rel="stylesheet" href="./style.css" type="text/css" media="screen" />

聪明的你可能问:wp-contentthemesAurelius目录下不是已经有一个 style.css 吗?那为什么 header.php

다시 알림: 코드를 작성할 계획이 없다면 이 튜토리얼 시리즈를 읽지 마세요. 도움이 되지 않을 것입니다!
저번에 만든 테마 디렉터리 wp-contentthemesAurelius로 이동하여 이 디렉터리에 새 PHP 파일 header.php를 만들고 index.php의 헤더 코드를 복사하여 <code>header.php에 붙여넣습니다. 다음 코드는 현재 header.php에 있는 모든 코드입니다(물론 다른 테마의 헤더). 코드는 모두 다르기 때문에 실제 프로젝트에서 사용자 정의할 수 있습니다.): 🎜
<link rel="stylesheet" href="<?php bloginfo(&#39;stylesheet_url&#39;); ?>" type="text/css" media="screen" />
🎜🎜 그런 다음 텍스트 편집기를 사용하여 index.php를 엽니다. archive.php, contact.php, full_width.php, page.phpsingle .php , 위의 유사한 코드를 삭제하고 다음과 같이 변경합니다. 🎜🎜
<link rel="pingback" href="<?php bloginfo(&#39;pingback_url&#39;); ?>" />
🎜🎜자, 이제 테스트 블로그 홈페이지를 열어 우리가 만든 테마가 여전히 정상적으로 작동하는지 확인하세요. 대답은 '예'입니다. 원래 Pretty와 마찬가지로요. 거의 동일하지만 여전히 혼란스럽습니다. get_header()header.php의 코드를 현재 PHP 파일에 복사하는 것과 같습니다. 다음으로 header.php의 동적 콘텐츠를 자세히 살펴보겠습니다. header.php는 모든 템플릿 페이지(홈페이지, 카테고리 페이지, 페이지, 탭 등)에 포함되므로 header.php의 코드는 동적이며 적합해야 합니다. 다른 페이지의 경우 간단한 HTML 대신 PHP 코드를 사용해야 합니다. header.php를 함께 수정해 봅시다: 🎜

1. b2386ffb911b14667cb8f0f91ea547a7

을 변경하세요🎜우리 모두는 제목을 알고 있습니다. 페이지마다 다르고 제목 설정이 SEO 효과에 직접적인 영향을 미치므로 여기서는 신중하게 설정해야 합니다. 다음은 SEO에 최적화된 제목 작성 방법을 제공합니다. b2386ffb911b14667cb8f0f91ea547a7Aurelius | Blog6e916e0f7d1e588d4f442bf645aedb2f를 다음과 같이 변경합니다. 🎜
<h1 id="logo" class="grid_4">Aurelius</h1>
<h2 class="grid_12 caption clearfix">Our <span>blog</span>, keeping you up-to-date on our latest news.</h2>
🎜위에 추가된 php 코드는 조건부 판단을 사용하며 다른 페이지에 사용됩니다. 제목, 다음은 이러한 조건부 태그에 대한 설명입니다. 🎜
  • is_home(): 현재 페이지가 홈페이지인 경우 true를 반환합니다.
  • is_category(): 현재 페이지가 홈페이지인 경우 true를 반환합니다. 카테고리 페이지가 true인가요?
  • is_single(): 현재 페이지가 단일 기사 페이지인 경우 true를 반환합니다.
  • is_page(): 현재 페이지는 단일 기사 페이지입니다. 페이지가 표시되면 true를 반환합니다.
🎜지금까지는 이러한 조건부 판단 태그에 대한 깊은 이해가 없어서 이해하지 못할 수도 있습니다. 이 태그를 사용하면 테마에 어떤 영향을 미칠지 튜토리얼을 진행하면서 천천히 이해하게 될 것입니다. 위에 적힌 제목이 마음에 들지 않으면 온라인에서 관련 코드를 검색해 보세요: WordPress SEO 제목🎜

2. 스타일시트 style.css 경로

🎜전에 보셨던 홈페이지가 아직 CSS 스타일이 로딩되지 않아서 혼란스럽습니다. 이제 스타일을 함께 추가해 보겠습니다. header.php에서 이 코드 조각을 찾을 수 있습니다: 🎜
<h1 id="logo" class="grid_4"><a href="<?php echo get_option(&#39;home&#39;); ?>/"><?php bloginfo(&#39;name&#39;); ?></a></h1>
<h2 class="grid_12 caption clearfix"><?php bloginfo(&#39;description&#39;); ?></h2>
🎜🎜당신이 똑똑하다면 다음과 같이 질문할 수도 있습니다: wp- contentthemesAurelius code> 디렉터리에 <code>style.css가 이미 있지 않나요? 그러면 왜 header.php가 CSS를 로드하지 않습니까? 결과를 보면 알 수 있듯이 페이지가 엉망이 되어 있고, CSS가 로딩되지 않은 것을 확인할 수 있습니다. 이는 워드프레스의 테마이기 때문에 워드프레스의 메인 프로그램에서 호출해야 하며, 단순한 html 정적 웹 페이지 파일이 아닌 분석을 거쳐 블로그를 표시할 수 있습니다. 올바른 수정: 🎜🎜
<link rel="alternate" type="application/rss+xml" title="RSS 2.0 - 所有文章" href="<?php echo get_bloginfo(&#39;rss2_url&#39;); ?>" />
<link rel="alternate" type="application/rss+xml" title="RSS 2.0 - 所有评论" href="<?php bloginfo(&#39;comments_rss2_url&#39;); ?>" />
🎜

bloginfo('stylesheet_url')输出的是你的主题css文件绝对网址,如http://localhost/wp/wp-content/themes/Aurelius/style.css,WordPress程序会自动识别你的WordPress安装地址,当前启用的主题,自动输出这个style.css链接。现在你可以试着更改一下,然后刷新一下你的博客首页,查看网页源代码,style.css的链接是不是变成你的了?页面是否可以正常显示了呢?

如果你的css文件不是style.css,且不是在主题根目录下,那怎么办呢?我们可以用0fc0a3f621cc574c92fe12d951515ac9来获取主题根目录的URL,如你的主题css文件是abc.css,那么我们可以这样写:0fc0a3f621cc574c92fe12d951515ac9/abc.css,如果是在子目录css下那就这样:0fc0a3f621cc574c92fe12d951515ac9/css/abc.css。同样加载js文件也是这样。

不过,还有几张图片的路径不对,还不能显示出来,现在我们一起用文本编辑器打开index.phparchive.phpcontact.phpfull_width.phppage.phpsingle.php,给这些图片加上正确的URL,搜索代码,将所有的:src="images/,批量替换成src="0fc0a3f621cc574c92fe12d951515ac9/images/。现在再刷新你的主页,看文章的缩略图是否可以正常显示。0fc0a3f621cc574c92fe12d951515ac9用于输出主题目录的URL。

3、添加pingback

至于什么是pingback,你可以在搜索引擎中输入关键字:WordPress pingback,就可以得到你想要的答案了。如果你需要这个功能,可以在93f0f5c25f18dab9d176bd4f6de5d30e里面添加以下代码:

<link rel="pingback" href="<?php bloginfo(&#39;pingback_url&#39;); ?>" />

4、更改博客名称和描述

header.php,下面两行代码用于显示博客名称和描述:

<h1 id="logo" class="grid_4">Aurelius</h1>
<h2 class="grid_12 caption clearfix">Our <span>blog</span>, keeping you up-to-date on our latest news.</h2>

上面是静态代码,现在做如下修改:

<h1 id="logo" class="grid_4"><a href="<?php echo get_option(&#39;home&#39;); ?>/"><?php bloginfo(&#39;name&#39;); ?></a></h1>
<h2 class="grid_12 caption clearfix"><?php bloginfo(&#39;description&#39;); ?></h2>

现在你的博客首页看到的就是你博客名称和描述了,并且logo也是一个链接指向你的博客首页。我们这里说说这些php代码的作用。

  • 8e15115cb80d1acbe35508806bdafbee  输出你的博客首页网址
  • dbc395af03a8e84af3b585d66d8154e4  输出你的博客名称
  • 512e8410679877c13c3741899e256d1d  输出博客描述

博客名称和描述可以在WordPress管理后台 - 设置 - 常规那里更改。以后制作你自己的WordPress主题的时候,你可参照上面的说明对你的主题进行修改。

5、添加订阅feed链接

相信每个已发布的WordPress博客主题都会提供feed订阅,当然我们的主题也应该提供这样的功能。在9c3bca370b5104690d9ef395f2c5f8d1之前添加以下代码:

<link rel="alternate" type="application/rss+xml" title="RSS 2.0 - 所有文章" href="<?php echo get_bloginfo(&#39;rss2_url&#39;); ?>" />
<link rel="alternate" type="application/rss+xml" title="RSS 2.0 - 所有评论" href="<?php bloginfo(&#39;comments_rss2_url&#39;); ?>" />

6、添加wp_head

有些插件需要在网页头部执行一些类如添加一些js或css的动作,要让这些插件能够正常的工作,也让你的主题有更好的兼容性,你应该添加wp_head()函数。打开header.php,在9c3bca370b5104690d9ef395f2c5f8d1前面添加以下代码即可:

&lt;?php wp_head(); ?&gt;

现在打开你的博客主页,查看源代码,9c3bca370b5104690d9ef395f2c5f8d1前面是不是多了以下类似代码(这些都是wp_head()的功劳):

<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://ludou.co.tv/blog/xmlrpc.php?rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://ludou.co.tv/blog/wp-includes/wlwmanifest.xml" /> 
<link rel=&#39;index&#39;  href=&#39;http://ludou.co.tv&#39; />
<meta name="generator" content="WordPress 2.9.2" />

7、添加Description 和 Keywords

关于添加网页描述和关键字,可以查看我之前写过的文章:WordPress使用经验(一)独立的Description 和 Keywords

8、显示菜单栏

目前菜单栏有Home、Blog和Contact Us几个菜单,不过这些都是静态的内容,并不是你博客上的页面。现在我们将菜单栏换成你的菜单,这里只在菜单栏中列出页面page,当然你也可以再放置分类,根据你的喜好来吧,将header.php中:

<ul id="navigation" class="grid_8">
	<li><a href="contact.html"><span class="meta">Get in touch</span><br />
		Contact Us</a></li>
	<li><a href="blog.html" class="current"><span class="meta">Latest news</span><br />
		Blog</a></li>
	<li><a href="index.html"><span class="meta">Homepage</span><br />
		Home</a></li>
</ul>

改成:

<ul id="navigation" class="grid_8">
	<?php wp_list_pages(&#39;depth=1&title_li=0&sort_column=menu_order&#39;); ?>
	<li <?php if (is_home()) { echo &#39;class="current"&#39;;} ?>><a title="<?php bloginfo(&#39;name&#39;); ?>"  href="<?php echo get_option(&#39;home&#39;); ?>/">主页</a></li>
</ul>

다음 두 기사에서는 WordPress 메뉴를 만드는 방법을 소개합니다.

9. 캐시 새로 고침

6c04bd5ca3fcae76e30b72ad730ca86d 앞과 9c3bca370b5104690d9ef395f2c5f8d1 뒤에 PHP 코드를 추가합니다. 프로그램 실행 효율성 향상: 4aa33201b43cdddd9f9c5e205447bd8c

6c04bd5ca3fcae76e30b72ad730ca86d前面,9c3bca370b5104690d9ef395f2c5f8d1后面添加PHP代码,用于提高程序运行效率:aac5cfcd9c80ae0a9200fcac4073e209

总结

好了,本次练习到此结束!现在总结一些今天讲到的比较重要的知识点:

  • c974613bee707296608324a2f9bc69b1 从当前主题文件夹中包含header.php文件
  • is_home(),is_single(),is_category()等几个条件判断标签
  • bf591411cb1eecee999d8e00eff73f82 输出主题文件夹中style.css文件的路径
  • 7a764efa0ab7cae20290c3ae2e7b431f 输出博客pingback网址
  • 0fc0a3f621cc574c92fe12d951515ac9 输出博客主题目录URL
  • 8e15115cb80d1acbe35508806bdafbee  输出你的博客首页网址
  • dbc395af03a8e84af3b585d66d8154e4 输出你的博客名称
  • 512e8410679877c13c3741899e256d1d 输出博客描述
  • 12493c822e68bbb57c539d2976ef876e 用于包含WordPress程序输出头部信息
  • 57e4661e8da6ea5673b0f98014eea780 用于列出博客分类页
  • c3248765daa06fe0c6c25b73e08a9431 用于列出博客页面

到目前为止你的博客还只能看到主页,不要灰心,凡事一步一个脚印,以后教程会慢慢深入的。最后提供经过本次修改后的Aurelius主题文件,你可以用文本编辑器打开看看,跟你修改的文件比较比较(尤其是header.php

Summary

WordPress 테마 생성 전체 과정(5): header.php 만들기자, 이번 연습은 끝났습니다! 이제 오늘 언급된 몇 가지 중요한 지식 사항을 요약해 보겠습니다.

    c27adca5b97a35e1c805981ef3c0665f 현재 테마 폴더의 header.php 파일을 포함합니다

    is_home(), is_single(), is_category() 및 기타 여러 조건부 판단 태그

    5178183fdd57e4a9c94038f51db01c31 출력 테마 폴더 경로 🎜🎜0a1ce9fc9a39c7afe18ab71574c58957의 style.css 파일에 블로그 핑백 URL을 출력합니다. 🎜🎜e32052fd4a03b78977bf004a079f0dd0 블로그 테마 디렉토리 URL 출력🎜🎜06ed001421f0e3a6e0b1f43d61b4138d 블로그 홈페이지 URL 출력🎜🎜6ab9eb05299571f63ffe11887b511d01 블로그 이름 출력🎜🎜d4ff953da94043a0d9696ed10d17b42d 블로그 설명 출력🎜🎜&lt;?php wp_head(); ?&gt; WordPress 프로그램 출력 헤더 정보를 포함하는 데 사용됩니다. 🎜🎜6f8528c1f0fa15f1bb348678730f0865 블로그 목록을 표시하는 데 사용됩니다. 🎜🎜c3248765daa06fe0c6c25b73e08a9431는 블로그 페이지 목록을 표시하는 데 사용됩니다.🎜🎜🎜지금까지 귀하의 블로그는 홈페이지만 볼 수 있었습니다. Footprints를 한 번에 튜토리얼은 앞으로 점차 심도 있게 진행될 예정입니다. 마지막으로, 이 수정 후의 Aurelius 테마 파일이 제공됩니다. 텍스트 편집기로 열어서 수정한 파일(특히 header.php)과 비교할 수 있습니다. 어떻게 바꿨어? 🎜🎜🎜🎜🎜🎜🎜추천 학습: "🎜WordPress Tutorial🎜"🎜

위 내용은 WordPress 테마 생성 전체 과정(5): header.php 만들기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 ludou.org에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제