WordPress最新版开发手册,涵盖WordPress主题开发、WordPress插件开发

据统计这是使用WordPress开发网站的企业和站长都会用到的技术手册,涵盖WordPress主题开发、WordPress插件开发于一体,可以帮助开发者更快更好的提高工作效率。Wordpress是目前使用最为广泛的博客系统,使用PHP语言开发,可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站,功能强大、简单易用。

WordPress主题结构:

WordPress主题目录位于 wp-content/themes/。主题的子目录拥有所有样式文件、模板文件、可选的函数文件 (functions.php)、JavaScript 文件、图片等。比如说一个叫做 “test” 的主题就会放在 wp-content/themes/test/目录里。请避免使用数字名字,这会导致无法在主题列表中正常显示出来。

WordPress每一个发行版都会有一个默认的主题。请认真查看默认的主题,这样可能会对制作你自己的主题有帮助。

WordPress 主题除了图片和JavaScript,经常由三种文件构成。

1、样式表文件 style.css, 控制着页面的外观
2、函数文件 (functions.php)。
3、模板文件,它控制着从数据库中调出的数据所呈现的外观。

WordPress模板基本文件

style.css 样式表文件

index.php 主页文件

single.php 日志单页文件

page.php 页面文件

archvie.php 分类和日期存档页文件

searchform.php 搜索表单文件

search.php 搜索页面文件

comments.php 留言区域文件(包括留言列表和留言框)

404.php 404错误页面

header.php 网页头部文件

sidebar.php 网页侧边栏文件

footer.php 网页底部文件

WordPress 子主题(Child Themes):

在wordpress主题存放目录下新建以父主题名开始+”-child“结尾的子主题目录。

在子主题目录下新建一个style样式文件,修改里面信息

  1. /*
  2. Theme Name: Twenty Twelve Child 主题名称
  3. Theme URI: http://网址 主题url
  4. Description: Child theme for the Twenty Twelve theme 描述
  5. Author: Your name here Author 作者
  6. URI: http://网址 作者url
  7. Template: twentytwelve 模板
  8. Version: 0.1.0 版本
  9. */

集成父主题的相关样式,可以在开始的位置引入父主题的样式文件;

  1. @import url(“../Sparkling/style.css”);

WordPress主题常用标签:

标题:

  1. <?php the_title(); ?>

标题文字数控制:

  1. <?php echo mb_strimwidth(get_the_title(), 0, 60, ‘…’); ?>

发布时间:

  1. <?php the_time(Ynj日); ?>

链接:

  1. <?php the_permalink(); ?>

分类:

  1. <?php the_category(‘,’); ?>

阅读量:

  1. <?php post_views(‘ ‘, ‘ ‘); ?>

调用文章特色图片:

  1. <?php
  2. if ( has_post_thumbnail() )
  3. the_post_thumbnail();
  4. else
  5. echo ‘<img src=”‘ . trailingslashit( get_stylesheet_directory_uri() ) . ‘images/default.jpg’ . ‘” alt=”” />’;
  6. ?>

WordPress Header头部 PHP代码

  1. <?php bloginfo(‘name’); ?> 网站标题
  2. <?php wp_title(); ?> 日志或页面标题
  3. <?php bloginfo(‘stylesheet_url’); ?> WordPress主题样式表文件style.css的相对地址
  4. <?php bloginfo(‘pingback_url’); ?> WordPress博客的Pingback地址
  5. <?php bloginfo(‘template_url’); ?> WordPress主题文件的相对地址
  6. <?php bloginfo(‘version’); ?> 博客的Wordpress版本
  7. <?php bloginfo(‘atom_url’); ?> WordPress博客的Atom地址
  8. <?php bloginfo(‘rss2_url’); ?> WordPress博客的RSS2地址
  9. <?php bloginfo(‘url’); ?> WordPress博客的绝对地址
  10. <?php bloginfo(‘name’); ?> WordPress博客的名称
  11. <?php bloginfo(‘html_type’); ?> 网站的HTML版本
  12. <?php bloginfo(‘charset’); ?> 网站的字符编码格式

WordPress 主体模板 PHP代码

  1. <?php the_content(); ?> 日志内容
  2. <?php if(have_posts()) : ?> 确认是否有日志
  3. <?php while(have_posts()) : the_post(); ?> 如果有,则显示全部日志
  4. <?php endwhile; ?> 结束PHP函数”while”
  5. <?php endif; ?> 结束PHP函数”if”
  6. <?php get_header(); ?> header.php文件的内容
  7. <?php get_sidebar(); ?> sidebar.php文件的内容
  8. <?php get_footer(); ?> footer.php文件的内容
  9. <?php the_time(‘mdy’) ?> 显示格式为”02-19-08″的日期
  10. <?php comments_popup_link(); ?> 显示一篇日志的留言链接
  11. <?php the_title(); ?> 显示一篇日志或页面的标题
  12. <?php the_permalink() ?> 显示一篇日志或页面的永久链接/URL地址
  13. <?php the_category(‘, ‘) ?> 显示一篇日志或页面的所属分类
  14. <?php the_author(); ?> 显示一篇日志或页面的作者
  15. <?php the_ID(); ?> 显示一篇日志或页面的ID
  16. <?php edit_post_link(); ?> 显示一篇日志或页面的编辑链接
  17. <?php get_links_list(); ?> 显示Blogroll中的链接
  18. <?php comments_template(); ?> comments.php文件的内容
  19. <?php wp_list_pages(); ?> 显示一份博客的页面列表
  20. <?php wp_list_cats(); ?> 显示一份博客的分类列表
  21. ## 分类目录函数wp_list_cats() 或 分类列表函数wp_list_categories()用法举例
  1. <?php next_post_link(‘ %link ‘) ?> 下一篇日志的URL地址
  2. <?php previous_post_link(‘%link’) ?> 上一篇日志的URL地址
  3. <?php get_calendar(); ?> 调用日历
  4. <?php wp_get_archives() ?> 显示一份博客的日期存档列表
  5. <?php posts_nav_link(); ?> 显示较新日志链接(上一页)和较旧日志链接(下一页)
  6. <?php bloginfo(‘description’); ?> 显示博客的描述信息

其它的一些Wordpress模板代码

  1. /%postname%/ 显示博客的自定义永久链接
  2. <?php the_search_query(); ?> 搜索表单的值
  3. <?php _e(‘Message’); ?> 打印输出信息
  4. <?php wp_register(); ?> 显示注册链接
  5. <?php wp_loginout(); ?> 显示登入/登出链接
  6. <!–next page–> 在日志或页面中插入分页
  7. <!–more–> 截断日志
  8. <?php wp_meta(); ?> 显示管理员的相关控制信息
  9. <?php timer_stop(1); ?> 显示载入页面的时间
  10. <?php echo get_num_queries(); ?> 显示载入页面查询

wordpress调用最新文章

  1. <?php get_archives(‘postbypost’, 10); ?> (显示10篇最新更新文章)
  2. 或者
  3. <?php wp_get_archives(‘type=postbypost&limit=20&format=custom’); ?>

wordpress调用随机文章

  1. <?php
  2. $rand_posts = get_posts(‘numberposts=10&orderby=rand’);
  3.  
  4. foreach( $rand_posts as $post ) :
  5.  
  6. ?>
  7.  
  8. <!–下面是你想自定义的Loop–>
  9.  
  10. <li><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></li>
  11.  
  12. <?php endforeach; ?>

WordPress插件开发:

在wp-content/plugins/ 目录下,创建插件的文件夹和一个 PHP 主文件。

插件信息头
WordPress 通过插件信息头识别插件的存在,并把它加入到控制面板的插件管理页面,这样插件才能激活,载入插件,并运行里面的函数;如果没有信息头,插件将无法激活和使用。

向插件的主文件添加如下的代码:

  1. <?php/** * Plugin Name: Hello World(我们定义的插件名) * Plugin URI: http://naz.cn(插件的主页) * Description: 这里填入插件的描述 * Version: 1.0.0 * Author: icodechef * Author URI: http://naz.cn */

添加函数到 wp_head 这个钩子:

  1. function foo() { // code…} function bar() { // code…} add_action( ‘wp_head’, ‘foo’ );add_action( ‘wp_head’, ‘bar’ );

好了,我们回到编写插件中,首先定义创建一个叫做 hello_world_get_words 的函数,程序的代码非常简单,就是随机输出一些问候语,代码如下:

  1. function hello_world_get_words() { $greetings = array( ‘Hello World’, ‘How’s it going?’, ‘What’s up?’, ‘How’s everything?’, ‘Nice to see you’, ‘Long time no see’, ‘How do you do?’, ‘Are you OK?’, ‘Yo!’, ‘Howdy!’, ‘Hiya!’, ‘G’day mate!’, ); return wptexturize( $greetings[ mt_rand( 0, count( $greetings ) 1 ) ] );}

再创建一个 hello_world 函数,获取问候语并格式化输出内容。

  1. function hello_world() { $chosen = hello_world_get_words(); echo “<p id=’world’>” . get_bloginfo( ‘name’, ‘display’ ) . ” 跟你说:{$chosen}</p>”;} add_action( ‘wp_footer’, ‘hello_world’ );

这一行 add_action( ‘wp_footer’, ‘hello_world’ ); 表示在页脚执行 hello_world 这个函数。

打印样式,我们还可以为输出定义样式(css)

  1. <?php/*Plugin Name: Hello worldPlugin URI: https://github.com/icodechef/hello-worldDescription: just a pluginAuthor: iCodeChefVersion: 1.0Author URI: http://icodechef.comLicense: MIT*/ function hello_world_get_words() { $greetings = array( ‘Hello World’, ‘How’s it going?’, ‘What’s up?’, ‘How’s everything?’, ‘Nice to see you’, ‘Long time no see’, ‘How do you do?’, ‘Are you OK?’, ‘Yo!’, ‘Howdy!’, ‘Hiya!’, ‘G’day mate!’, ); return wptexturize( $greetings[ mt_rand( 0, count( $greetings ) 1 ) ] );} function hello_world() { $chosen = hello_world_get_words(); echo “<p id=’world’>” . get_bloginfo( ‘name’, ‘display’ ) . ” 跟你说:{$chosen}</p>”;} add_action( ‘wp_footer’, ‘hello_world’ ); function hello_world_css() { echo ” <style type=’text/css’> #world { position: fixed; bottom: 0; right:0; background-color:#f8f8f8; padding:15px 20px; margin: 0; font-size: 15px; z-index:1000; border:1px soild #999; border-radius: 4px; color: #da4453; } </style> “;} add_action( ‘wp_head’, ‘hello_world_css’ );

然后我们到后台管理页面,启用 Hello World 这个插件,然后查看一下效果吧。

WP优化

wordpress远程图片文件自动本地化

2020-5-27 10:39:58

WP优化

WordPress纯代码实现用户关注功能

2020-5-30 11:29:08

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索