IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> wordpress主题开发教程 -> 正文阅读

[PHP知识库]wordpress主题开发教程

一、主题开发步骤

简单的说,开发一个wordpress分以下几步:

  1. 在wp-content/themes/文件夹下创建属于你自己的主题文件夹

  2. 然后在主题文件夹下创建2个必须的基本文件 index.php 和style.css?

  3. 接着根据需要创建其他模板和文件及利用wordpress内置的函数在模板中动态显示内容

  4. 最后登陆后台在外观中启用我们创建的主题就可以了

当然,还有个简便的方法就是把wordpress默认的主题复制一份,然后在其基础上二次开发就OK了。

二、主题的剖析

WordPress主题目录位于 wp-content/themes/。主题目录拥有所有样式文件、模板文件、可选的函数文件?(functions.php)、JavaScript 文件、图片等。比如说一个叫做?"test"?的主题就会放在 wp-content/themes/test/目录里。

WordPress 主题一般由三种文件构成:

  1. 样式表文件 style.css,?控制着页面的外观。

  2. 函数文件?(functions.php)。

  3. 模板文件,它控制着从数据库中调出的数据所呈现的外观。

1、主题样式表

style.css为该主题的主题样式,该样式文件须在文件开头以注释的形式列出主题的详细信息。

如:

/*

Theme Name: ykqTheme
Theme URI: yuankeqiang.lofter.com
Author: ykq

Tag : hehe
.......

*/

这样启用主题后wordpress会自动读取该主题的相关信息,我们可以在后台->外观->主题->主题详情?来查看我们我们的主题信息。

缩略图来自哪里:

在主题目录创建一张图片重命名为screenshot.png或者screenshot.jpg,wordpress会自动读取该图片为主题的缩略图。

还有一个样式rtl.css:

作用是如果网站的阅读方向是自右向左的,他会自动被包含进来。你可以使用 the RTLer?插件来生成这个文件。

2、函数文件

一个主题可以使用一个函数文件,位于主题的根目录,叫做 functions.php。

这个文件就像一个插件,?如果它位于你正在使用的主题里的话,他在你的主题初始化的时候就会自动加载(后台页面和前台页面都一样加载)。对于这个文件的建议:

  • 启用主题功能,例如:侧边栏,菜单,文章缩略图,文章格式,自定义标题栏。

  • 定义用于模板文件中的函数。

  • 设置一个选项菜单,让网站拥有者可以自定义颜色,样式,和你的主题的其他特性。

3、模板文件

模板是一些PHP文件,不同的模板代表不同的页面:

常见模板如下:

wordpress 仿站教程:模板文件、调用模板、创建主题、参数调用标签_tiz198183的博客-CSDN博客_wp仿站教程wordpress 仿站教程:模板文件、调用模板https://litao.blog.csdn.net/article/details/125277290

4、自定义单页模板

我们可以自定义页面模板page.php,创建一个自定义页面需要首先创建一个文件,建议文件的命名为page-{name}.php,

假设我们创建一个公司简介的页面,自定义页面可以叫做page-about.php。在page-about.php的文件顶部必须写上页面名称:

<?php /* Template Name:?公司简介??*/???>

这样我们创建页面的时候就可以选择我们自定义的模板:

注意:我们可以在主题文件夹的任何地方创建页面模板,若模板文件很多的话我们可以创建一个文件夹如page-templates,然后将模板文件都放到该文件夹下。

5、包含模板

为了加载其他模板(除了 header, sidebar, footer 这些已经被预先定义了加载命令的例如 get_header())到某个模板中,你可以使用 get_template_part()。这利于主题的代码重用。

三、Wordpress 常用函数

1.bloginfo() 显示博客信息。根据参数不同,可以显示博客信息中不同的部分。


bloginfo('name'); ?输出博客名
bloginfo('url'); ? 输出博客url
bloginfo('description'); 输出博客描述
bloginfo('rss2_url'); ? 输出博客RSS2.0 feed地址 如:https://www.a.com/feed
bloginfo('template_url'); 输出博客模板地址
bloginfo('charset'); ?输出编码方式

示例:使用bloginfo()函数常见组合

Copyright ? ?<a href="<?php bloginfo('url');?>" title="<?php bloginfo('description');?>"><?php bloginfo('name');?></a>

注意:bloginfo() 是输出这些值,如何只想获取使用 get_bloginfo(),参数一样


2.wp_title() 显示页面标题。如果是文章页面显示文章标题,分类页面显示分类名称。


<?php wp_title('_',true,'right'); ?>
第1个参数:标题和其余部分之间的分割符,默认是>>
第2个参数:是bool值,如果是true则输出标题,如果是false则返回标题。
第3个参数:right表示分割符在标题后面

示例:在header.php添加如下代码

<title>
<?php wp_title('_',true,'right'); ?>
<?php bloginfo('name'); ?>-<?php bloginfo('description'); ?>
</title>

3.wp_get_archives() 文章存档

<?php wp_get_archives('type=monthly&format=html&show_post_count=1&limit=10');?>

?第1个参数:type=monthly 按月显示文章存档,可以使用 yearly、daily、weekly 等代替monthly表示按年、日、周显示文章存档
第2个参数:format=html ?使用通用的HTML中<li>格式化文章列表
第3个参数:show_post_count=1 是否显示文章数,该参数是bool值
第4个参数:limit=10 显示文章存档的最大数量为10,超过不显示

4.wp_list_categories() 文章分类

<?php wp_list_categories('orderby=name&order=ASC&show_count=1&use_desc_for_title=1&feed=订阅&exclude=2,5&number=10');?>


第1个参数:orderby=name 按分类名称的字母先后顺序显示分类信息,可以将name换成id
第2个参数:order=ASC ?按分类名称的字母升序显示分类信息,将ASC改为DESC表示按降序
第3个参数:show_count=1 显示分类文章数
第4个参数:use_desc_for_title=1 每个分类超链接添加title属性为分类描述
第5个参数:feed=订阅 ?每个分类信息旁边添加一个名为"订阅"的超级链接,提供该分类的RSS订阅
第6个参数:exclude=2,5 显示分类中去除id为2和5的分类,也可以用include=2,5表示显示id为2和5分类
第7个参数:number=10 只显示最前的10个分类

5.get_the_category() 返回当前文章所属的类别的若干属性所组成的一个数组,该数组包含以下内容

<?php $category = get_the_category($id); ?>
$id(可选)文章的ID编号,默认值为$post->ID (当前文章的ID编号)。
返回值
cat_ID ? 分类ID编号 (也可以保存为 ‘term_id’)
cat_name ? 类别名称 (也可以保存为 ‘name’)
category_nicename:别名,存储在slug字段
category_description 分类描述 (也保存为’description’)
category_parent 当前分类的父类别的ID编号。’0′ 表示没有父类别。(同样也可以保存为 ‘parent’)
category_count 该分类有多少文章 (也可以保存为 ‘count’)

显示第一个类别的名称

<?php
$category = get_the_category();
echo $category[0]->cat_name;
?>

显示多个分类名称(当一个篇文章有多个分类的时候)

<?php
$cat = get_the_category();
foreach($cat as $key=>$category)
{
echo $category->cat_name.'<br/>';
}
?>

显示分类的所有内容

<?php $categories = get_the_category(); var_dump($categories);?>

通过get_the_category()函数我们就可以在文章的循环外获取分类的内容,这样我们就可以用在很多的功能中,比如可以在每篇文章下面添加一个相关文章列表。

6.the_category() 输出当前文章所属的类别名称,而且文章类别的超链接形式


在函数中使用分隔符等参数来格式化输出。
如 the_category('-'),若当前文章属于两个以上分类,可以显示为:分类1-分类2。
? ? 如果只属于有个分类,则显示为分类1

7.category_description() 以当前分类id输入,得到该分类描述

<?php echo category_description(get_the_category()[0]->cat_ID); ?>

8.is_home() 判断当前页面是否是首页,如果是首页,则返回TRUE


该函数用来控制博客侧边栏的显示方式,经常使用如下代码段:

<?php 
if(is_home()){
   echo "首页显示内容";

}else{
   echo "非首页显示内容";
}
?>

9.is_archive() 判断是不是存档页面


is_archive()用以判断当前显示的内容是否是博客存档页面,比如按日期的存档,或者按分类的存档,等等;其和is_home()函数一样,返回一个Bool值。

10.is_page()?是否是博客的独立页面


is_page()函数判断当前显示的内容是否是博客的独立页面(page),如“本站WordPress”、“关于本站”等页面;它也返回一个Bool值。
我们可以在模板中通过该函数判断当前是否是一个独立页面,从而决定是否为当前显示的文章显示发布时间等等。

11.is_paged()


该函数用以判断当前文章是否因为内容过多而分页显示;需要注意的是,如果你在写文章时手动添加了标签,来强制分页的话,该函数并不会因此而返回TRUE。


12.is_page_template()


is_page_template()函数需要跟一个参数,通常以如下方式使用:
is_page_template(’guestbook.php’);
藉此判断当前显示的独立页面(page)是否使用了参数所示的模板guestbook.php;如果不跟参数,函数返回当前独立页面是否使用了模板。


13.is_single()


is_single()用以判断当前显示的页面内容是否是一篇单独的文章。其后面可以跟三种参数,一种是文章ID;一种是文章题目(title);一种是文章名称(slug,文章题目的一种简短说明形式);或者可以将三种参数组合使用,藉此来判断当前页面内容是否是具体的某篇文章。

一个简单的例子如下,我们可以通过如下几种方式判断当前显示的内容是否是本文:

is_single('808');
is_single('用好WordPress不可不知的函数(二)');
is_single('functions-must-known- using-wordpress-second');
is_single('808','用好WordPress不可不知的函数(二)','functions-must-known-using-wordpress-second');

在这里,本站需要对上述最后一种方式做些说明:该函数后跟三个参数时,有优先级,如果第一个参数符合条件,则返回TRUE;否则,则返回FALSE;貌似后面的参数并没有什么意义。

14.is_category()


该函数用以判断当前显示的页面内容是否是一个分类页面,如网站相关;其中无需参数。函数返回一个Bool值。

15.is_tag()


is_tag()用以判断当前显示的页面是否是一个标签页面,比如WordPress;其后也不需要跟参数。该函数同样返回一个Bool值。

16.is_date()


此函数用以判断当前显示的内容是否为按时间归档的页面,比如2009年四月,或者2009年4月8日,等等。

17.is_day()、is_month()、is_year()


这些函数用以判断当前显示的内容是否为按天、按月、按年份归档的页面。它们和is_date()类似,只不过将归档时间更具体化而已。

18.is_author()


该函数用以判断当前显示的内容是否为以作者名归档的页面,比如本站的admin作者页面。

19.is_admin()


is_admin()函数用以判断当前是否在控制面板页面,或者管理员面板页面。

20.get_bloginfo()


和bloginfo()函数实现近乎相同的功能。主要用来显示博客的信息;而且根据后跟参数的不同,会输出博客的不同信息。
其后不跟参数时,get_bloginfo()可以显示博客名称,形如“本站”;
后跟其他参数时,可以显示对应的信息,比如get_bloginfo ( ‘description’ )用以显示博客描述信息;
其他还可以使用的参数包括name、url、wpurl以及admin_email等等。但因为其与bloginfo()函数实现相同的结果,所以,在bloginfo能够实现的情况下,本站不推荐使用get_bloginfo()函数。

21.query_posts()?控制哪些文章会在页面上显示


如query_posts("cat=3,6&cat=-5,-10")表示取分类ID为3和6的文章显示,不取分类ID为5和10的文章显示;
如query_posts("order=ASC&showposts=10&offset=1&orderby=date&posts_per_page=5")意义如下:
? ? (1)order=ASC表示按照升序排列,取为DESC则表示按降序;
? ? (2)showposts=10则表示获取10篇文章;
? ? (3)offset=1表示取最新的文章;
? ? (4)orderby=date表示将文章按照日期排序;
? ? (5)posts_per_page=5表示每页显示5篇文章。
需要注意的是该函数只是将文章内容从MySQL数据库中查询出来,要将其显示,还需要与其他语句配合,比如一个经常在侧边栏中使用的形式如下:
如上的这段代码用以在侧边栏的指定位置上显示最新的5篇文章。

<li>
  <h2>显示最新5篇文章</h2>
  <?php query_posts('showposts=5&offset=1'); ?>
  <ul>
  <?php while(have_posts()):the_post();?>
    <li><a href="<?php the_permalink();?>" title="<?php the_title();?>">
    <?php the_title(); ?>
    </li>
  <?php endwhile;?>
  </ul>
</li>

22.get_posts() 控制哪些文章会在页面上显示。和query_posts()相同参数,只是使用有固定形式

<?php 
$lastposts=get_posts('numberposts=5');
foreach($lastposts as $post) : setup_postdata($post);
?>
    <h2><a href="<?php the_permalink(); ?>" id="post-<?php the_ID();?>"><?php the_title(); ?></h2>
    <?php the_content();?>
<?php endforeach;?>

23.wp_list_cats() 已废弃,被wp_list_categories()替代

24.get_calendar()


get_calendar()函数用以在WordPress上显示日历,日历样式和使用widget显示的效果相同,如下图所示:

其后可以跟一个BOOL参数,用以控制日历上方星期的显示样式。但经本站测试,在中文状态下,使用TRUE或FALSE参数,日历的显示效果并没有什么区别。

25.wp_list_bookmarks() 友情链接

<?php wp_list_bookmarks('orderby=link_id&title_before=<div>&title_after=</div>'); ?>

26.get_links()、wp_get_links() 已废弃


和wp_list_bookmarks()相同的功能

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 00:07:30  更:2022-09-21 00:08:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 6:24:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码