WordPressWordPress入门


备注

在此处输入图像描述 WordPress是一个开源内容管理系统(CMS),用于构建和管理网站。 WordPress是国际英里互联网上最受欢迎的CMS,在撰写本文时约占所有CMS网站的一半 ,在互联网上约占所有网站的四分之一

WordPress起初是一个博客平台,但多年来已经发展成适合大多数类型的网站。该界面可以在没有编码知识的情况下使用,这使得它非常适合希望授权客户管理自己网站的初学者和开发人员。

WordPress流行的另一个重要因素是它的灵活性,主要是由于核心的插件和主题系统。插件系统可以轻松扩展核心功能,而无需修改核心代码。以类似的方式,主题系统使得改变网站的布局和美学变得容易。现在有成千上万的免费和高级WordPress插件和主题可用。其中许多分别位于wordpress.org 插件存储库主题存储库中

WordPress由它自己的社区开发,但与Automattic公司密切相关, Automattic公司雇佣了许多WordPress的核心开发人员。

WordPress基于PHP服务器脚本语言和MySQL查询语言构建。 WordPress使用MySQL作为用户内容和配置的数据存储。 PHP将内容数据与具有所有必要资产的HTML网页进行争论。

wordpress.com vs wordpress.org

您可以通过注册Automattic的 wordpress.com服务并在其服务器上托管您的网站来使用WordPress,或者您可以从wordpress.org下载WordPress软件并在您控制的服务器上托管您的网站。第一个选项很简单,但您无法编辑任何站点代码。您只能通过WordPress界面进行更改。第二个选项需要更多工作,但您可以灵活地使用您的网站代码做任何您喜欢的事情。如果您是StackOverflow用户,您可能会使用第二个选项。

开源

WordPress是开源软件,意味着它可以免费使用,任何人都可以查看源代码并为其做出贡献。可以通过阅读WordPress codexContribution页面开始潜在的贡献者。

可以通过在WordPress票证跟踪器上提交错误来报告错误。

文档

WordPress在WordPress上WordPress Codex中正式记录。使用WordPress的开发 人员wordpress.orgDeveloper Codex部分和Developer Reference部分特别感兴趣。

版本

发布日期
1.0 2004年1月3日
1.2 2004-05-22
1.5 2005-02-17
2.0 2005-12-26
2.1 2007-01-22
2.2 2007-05-16
2.3 2007-09-24
2.5 2008-03-29
2.6 2008-07-15
2.7 2008-12-10
2.8 2009-06-10
2.9 2009-12-18
3.0 2010-06-17
3.1 2011-02-23
3.2 2011-07-04
3.3 2011-12-12
3.4 2012-06-13
3.5 2012年12月11日
3.6 2013年8月1日
3.7 2013年10月24日
3.8 二零一三年十二月十二日
3.9 2014年4月16日
4 2014年9月4日
4.1 情节中字
4.2 2015年4月23日
4.3 2015年8月18日
4.4 2015年12月8日
4.5 2016年4月12日
4.6 2016年8月16日
4.7 2016年12月6日
4.8 2017年6月8日

WordPress简介

WordPress [WP]是一个用于构建应用程序,网站和博客的开源内容管理系统。 WP是用PHP编写的,它使用MySQL作为用户内容和配置的数据存储。它拥有丰富的插件主题生态系统,享有充满活力的开源社区,良好的文档和低门槛。可用性和开发人员文档可在WP Codex中找到。

WordPress的一部分与大多数其他CMS产品不同的是它的事件驱动编程 。这是编程和逻辑表示的不同方式,然后是大多数CMS系统使用的MVC(模型视图控制器)体系结构。 WordPress使用Actions和Filters的概念。它们形成一个事件队列,允许插件和主题插入,修改甚至删除最终Web应用程序页面和/或部件的各个部分。类似的概念是JIT或Just-In-Time编译。

虽然历史上WordPress被称为博客平台,它可能永远不会失去这种耻辱,但核心WordPress团队的焦点已明显改变。随着创始人Matthew Mullenweg的“ 2016年的 道路状况” ,我们可以看到目标,愿景和努力的明显转变。 2016年,当WordPress核心采用了大部分非常流行的REST API插件时,我们看到了惊人的进步。这显然是核心团队在他们开始大胆建立前端JavaScript CMS管理面板的过程中的意图,这打破了我们多年来看到的黄金标准;他们称之为Calpyso

WordPress主题

将URL映射到特定模板

要完全掌握WordPress主题,您必须了解两个主要概念:

  1. 固定链接
  2. 模板层次结构

永久链接是永久的,不变的URL(或链接,指向特定资源。例如:

  • example.com/about-us/(WP中的一个页面)
  • example.com/services/(多个项目的列表,在WP术语中也称为“归档”)
  • example.com/services/we-can-do-that-for-you/(个别项目)

当用户请求URL时,WordPress会对永久链接进行逆向工程,以确定哪个模板应该控制其布局。 WordPress会查找可以控制此特定内容的各种模板文件,并最终优先考虑它找到的最具体的内容。这称为模板层次结构。

一旦WP在层次结构中找到匹配的视图模板,它就会使用该文件来处理和呈现页面。

例如: index.php (默认的“catch-all”模板)将被archive.php (基于列表的内容的默认模板)覆盖,而archive.php 又将被archive-services.php 覆盖(模板专门为名为“services”的存档提供文件。

这是模板层次结构的一个很好的可视化参考

基本主题目录结构

一个简单的主题看起来像这样:

    // Theme CSS
    style.css

    // Custom functionality for your theme
    functions.php

    // Partials to include in subsequent theme files
    header.php
    footer.php
    sidebar.php
    comments.php

    // "Archives", (listing views that contain multiple posts)
    archive.php
    author.php
    date.php
    taxonomy.php
    tag.php
    category.php

    // Individual content pages
    // Note that home and frontpage templates are not recommended
    // and they should be replaced by page templates
    singular.php
    single.php
    page.php
    front-page.php
    home.php

    // Misc. Utility Pages
    index.php (a catch-all if nothing else matches)
    search.php
    attachment.php
    image.php
    404.php
 

“单一”的示例(单个帖子的模板)

<?php get_header(); ?>

<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
    <h1><?php the_title(); ?></h1>
    <?php the_content(); ?>
    <?php comments_template( '', true ); ?>
<?php endwhile; ?>

<?php get_sidebar(); ?>
<?php get_footer(); ?>
 

这里发生了什么事?首先,它加载header.php (类似于PHP include或require),设置The Loop,显示the_titlethe_content ,然后包括comments.phpsidebar.phpfooter.php 。 Loop完成繁重的工作,设置一个Post 对象,其中包含当前查看内容的所有信息。

“存档”示例(多个帖子列表的模板)

<?php get_header(); ?>

<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
    <a href="<?php the_permalink(); ?>"<?php the_title(); ?></a>
    <?php the_excerpt(); ?>
<?php endwhile; ?>

<?php
    next_posts_link( 'Older Entries', $the_query->max_num_pages );
    previous_posts_link( 'Newer Entries' );
?>

<?php get_sidebar(); ?>
<?php get_footer(); ?>
 

首先,它包括header.php ,设置The Loop,并包括sidebar.phpfooter.php 。但在这种情况下,循环中有多个帖子,因此会显示一个摘录,其中包含指向单个帖子的链接。还包括next_posts_linkprevious_posts_link ,因此归档可以对结果进行分页。

帖子,页面,自定义帖子类型和自定义字段

开箱即用,WordPress支持两种类型的内容: PostsPages 。帖子通常用于非分层内容,如博客帖子。页面用于静态,独立的内容,如“关于我们”页面,或者公司的“服务”页面,下面是嵌套的子页面。

从3.0版本开始,开发人员可以定义自己的自定义帖子类型,以扩展WordPress的功能,而不仅仅是基础知识。除了自定义帖子类型之外,您还可以创建自己的自定义字段以附加到帖子/页面/自定义帖子类型,从而允许您提供在模板中添加和访问元数据的结构化方式。请参阅: 高级自定义字段