分类: WordPress开发

  • 如何在Linux、macOS、Windows服务器上安装PHP

    如何在Linux、macOS、Windows服务器上安装PHP

    建立一个服务器可能是一项艰巨的任务,特别是在安装像PHP这样的语言时。如果你想让一个WordPress测试服务器运行起来,这是一个必须要学习的技能。

    不知道从哪里开始在你的服务器上安装PHP?根据你独特的设置,有很多方法可以做到这一点。在哪里下载 PHP,哪个版本,需要什么来使它工作,以及如何在不同的操作系统上安装 PHP?

    我们将在这个一站式的 PHP 安装指南中回答所有这些问题。

    1. 什么是PHP?
    2. PHP的先决条件
    3. 如何在Linux上安装PHP
    4. 如何在Windows上安装PHP
    5. 如何在macOS上安装PHP
    6. 所有关于PHP的扩展

    什么是PHP?

    PHP logo

    PHP logo

    PHP是一种开源的脚本语言,主要用于Web开发和服务器端(后端)脚本。简单地说。

    • PHP可以安装在服务器上运行脚本(例如在网站上添加表单的代码片段)。
    • 它是在服务器端而不是客户端运行的,所以它在后台而不是在浏览器中工作。
    • 它与HTML很好地结合在一起,使它非常适用于网络开发。

    它也是最容易学习的网络脚本语言之一,使它成为初学者的热门选择。但它也相当强大,适合于高级网站功能。

    许多网站和工具都使用PHP和它的许多扩展(.NET、Apache和MySQL可能听起来很熟悉)。 WordPress主要建立在PHP上,它的大多数插件和主题也在PHP上运行。

    你的服务器需要PHP吗?

    那么你知道什么是PHP,但为什么你要在你的服务器上安装它?

    最明显的原因是,它是让WordPress启动和运行的必要条件,因为它几乎完全建立在PHP上。PHP也为大多数WordPress的功能、钩子、主题和插件提供动力。

    你可以在这里看到所有其他的WordPress系统要求

    WordPress要求

    WordPress要求

    所以,如果你想运行一个WordPress测试服务器来玩玩,或者建立一个暂存网站,你就需要安装PHP。

    除此之外,PHP对初学者来说是一个很好的启动点。与其他网络脚本语言相比,它使用起来很简单,但这并不以牺牲功能为代价。如果你足够熟练,你可以用它做各种各样的事情。

    PHP也相当流行。因此,你可以在网上找到大量的扩展和资源。

    除此之外,如果你想学习WordPress主题和插件的编码,你就需要学习PHP。建立一个测试服务器是一个很好的实验方法。

    请注意,许多虚拟主机服务器都预装了PHP和WordPress。

    你需要手动操作的唯一原因是,如果你要从头开始建立一个服务器,无论是在你的本地电脑上还是在一个没有管理的托管环境中。

    这就是说,让我们进入服务器设置说明。

    PHP的先决条件

    在安装 PHP 之前,你需要确保你的服务器能够处理它。幸运的是,这些要求是相当基本的,而且很多软件可能已经安装在你的电脑上了。

    如果你以前没有创建过服务器,你应该看看这个指南,在多个操作系统上建立一个本地服务器。具体的细节因你的操作系统而异,但你应该知道如何使用命令行并准备好安装新的软件。

    无论在什么操作系统上安装 PHP,都需要一个 web 服务器来运行它。还可能需要安装一个像 MySQL 这样的数据库,所以要记住这一点。

    下面是每个操作系统的 PHP 先决条件,从 Linux 开始。

    • 一个 ANSI C 编译器。
    • 特定模块的组件,如 GD 图形库或 PDF 库。
    • 可选的:Autoconf 2.59+(适用于PHP版本<7.0),Autoconf 2.64+(适用于PHP版本>7.2),Automake 1.4+,Libtool 1.4+,re2c 0.13.4+,和Bison。

    你也应该已经熟悉浏览过类似 Unix 的操作系统了。

    现在是对 Windows 的 PHP 要求。

    • 在 PHP 5.5+ 上支持多种 Windows 操作系统,但 7.2.0+ 用户不能使用 Windows 2008 或 Windows Vista。
    • Visual C Runtime(CRT)。
    • Visual Studio 2012, 2015, 2017, 或Microsoft Visual C++ Redistributable for Visual Studio 2019,取决于你的PHP版本。

    最后,macOS没有先决条件,因为PHP是与系统捆绑的。我们将在下面解释如何启用它。

    在哪里下载PHP

    如果你需要手动下载PHP文件,你应该从官方网站的PHP下载页面获取。

    避免从第三方网站安装,除非你知道它们是安全的,因为从第三方网站下载文件可能导致意外地安装恶意软件

    PHP下载页面

    PHP下载页面

    如果是为 Windows 机器下载,请在每个版本的 PHP 中寻找 “Windows 下载 “链接,并确保安装的是正确的文件。

    你也可以安装旧版本的 PHP,但除非你知道自己在做什么,否则不建议这样做,因为它们会使你的服务器暴露在错误和重大的安全缺陷中。

    如果你运行的是Linux发行版,通常不需要通过网站获取文件,应该使用命令行。我们将在下面详细介绍。

    我应该使用哪个PHP版本?

    如果你点击了上面的下载链接,你很可能看着所有这些文件而感到不知所措。哪个PHP版本是正确的?

    一般来说,如果你要开始一个全新的项目,兼容性问题不是问题,你应该得到最新的稳定版本的 PHP。

    有时也可以下载测试版的 PHP,这些版本甚至更新,但这些版本通常都有错误,而且只是为了帮助开发人员收集反馈意见而发布的。大多数情况下,应该坚持使用稳定版本。

    那旧版本呢?每个 PHP 版本都有新的功能,但这意味着与旧的功能有新的不兼容之处。如果你需要做一些最新的 PHP 版本不支持的特定事情,你可以使用旧版本,但你应该只坚持使用目前支持的版本

    如果你不确定,那就使用最新版本的PHP。

    请注意,WordPress只与某些版本的PHP兼容。它在技术上支持从5.6.20以上的PHP版本,但这些版本已经相当老了,因此不推荐。7.4和8.0版本是目前对WordPress支持最好的版本。

    PHP版本8也是兼容的,但目前,这是很新的,并不是所有的插件都能正常工作。如果你担心兼容性问题,坚持使用PHP7.4版本。你可以阅读我们的PHP基准帖,看看各种PHP CMS和框架在不同PHP版本上的表现。

    如何在Linux上安装PHP

    在开始之前,你应该熟悉终端和如何操作一般的类Unix操作系统。一般来说,这些命令行代码应该适用于任何在终端中使用正常语法的Linux发行版,但我们在下面为特定的操作系统留下一些说明。

    首先,你应该确保你的软件包是最新的,所以在终端运行这个Linux命令

    sudo apt-get update && sudo apt-get upgrade
    sudo apt-get update && sudo apt-get upgrade
    sudo apt-get update && sudo apt-get upgrade

    现在你准备好安装 PHP 了。这样做的命令毫不费力,直截了当。

    sudo apt-get install php
    sudo apt-get install php
    sudo apt-get install php

    通过终端安装PHP

    通过终端安装PHP

    这将安装最新版本的 PHP 和几个扩展。你可以用这段代码看看你有哪个版本。

    php –v
    php –v
    php –v

    如果想安装特定版本的 PHP,比如 PHP 7.4,怎么办?你需要使用 Ondřej Surý 的 PPA,即个人软件包存档。这是一个安全的方法来安装支持的旧版本的PHP。一次性运行这三个命令:

    sudo apt install software-properties-common
    sudo add-apt-repository ppa:ondrej/php
    sudo apt-get update
    sudo apt install software-properties-common
    sudo add-apt-repository ppa:ondrej/php
    sudo apt-get update
    sudo apt install software-properties-common
    sudo add-apt-repository ppa:ondrej/php
    sudo apt-get update

    现在系统会识别存档,并可以安装 PHP 7.4。键入以下命令:

    sudo apt install php7.4
    sudo apt install php7.4
    sudo apt install php7.4

    当然,你可以用你想要的任何 PHP 版本来代替这个数字。

    这涵盖了基本的内容,但如果你在配置方面需要额外的帮助,Unix 下的 PHP 安装文档可以帮助你。

    在Ubuntu上安装PHP

    对于Ubuntu用户来说,只要你遵循上面的指南,就没有太多的具体问题。Ubuntu是最流行的发行版之一,所以大多数Linux指南实际上是为该系统制作的。

    你可以选择的一个替代方案是下载一个LAMP堆栈。LAMP是指Linux、Apache、MySQL和PHP。它本质上是一个包含所有你需要的软件的捆绑包,以获得一个服务器的启动和运行。

    虽然你可以分别手动下载这些工具,但你可以得到Taskel,这是一个可以一次性安装所有这些工具的软件包。只要在终端中连续运行这两个命令:

    sudo apt install tasksel
    sudo tasksel install lamp-server
    sudo apt install tasksel
    sudo tasksel install lamp-server
    sudo apt install tasksel
    sudo tasksel install lamp-server

    通过终端安装LAMP堆栈与Taskel

    通过终端安装LAMP堆栈与Taskel

    在CentOS 7上安装PHP

    这个操作系统与其他Linux发行版有一点不同。在CentOS上,apt和apt-get命令不是安装软件的理想方式。相反,它使用yum,Yellowdog Updater Modified,一个更好的基于RHEL的操作系统的软件包管理器。

    否则,你需要使用的命令是非常相似的。要更新你的软件包,请运行这个命令来代替:

    sudo yum install epel-release && sudo yum update
    sudo yum install epel-release && sudo yum update
    sudo yum install epel-release && sudo yum update

    至于其他命令,通常可以用yum代替 apt-get 。要安装PHP,使用这个命令。

    sudo yum install php
    sudo yum install php
    sudo yum install php

    诸如 php –v 等PHP命令在CentOS 7上应该是一样的,所以你不需要担心这个问题。

    在Debian上安装PHP

    类似Unix的操作系统的最后一个是Debian。这次只是有一些小问题,但上面列出的大多数命令应该都能正常工作。

    对于Debian,你可以在终端命令中使用 apt-get 或 aptitude 。 aptitude 命令更全面一些,并提供一个菜单界面。至于你使用哪一个,则取决于个人的喜好,任何一个都可以完成工作。

    因此,你可以不使用通常的 apt-get 命令,而是运行这个命令:

    sudo aptitude install php
    sudo aptitude install php
    sudo aptitude install php

    Debian可能很挑剔。如果你发现PHP不能解析或者扩展程序不能工作,请确保你已经更新了服务器的网络配置文件,并且正在加载扩展程序ini文件。

    除了一些小事情,Debian的说明与其他Linux发行版的说明几乎是一样的。

    如何在Windows上安装PHP

    如果你使用的是 Windows 系统,与 macOS 和 Linux 不同,你不需要通过命令行来安装 PHP(尽管如果你愿意,这也是一个选项)。

    从这里安装 PHP 的一个简单方法是启用 IIS,然后用 WebPI 来安装 PHP。启动 WebPI 后,你可以在Products标签下找到它。在你想要的版本上点击Add,然后点击Install

    启用Windows的IIS

    启用Windows的IIS

    你也可以下载 PHP for Windows手动配置它与 IIS 一起工作。如果你使用 IIS,请确保得到一个非线程安全的版本。

    如果这一切都太复杂,你可以安装WampServerXAMPP,因为它们包含了你开始使用Web服务器所需要的一切。Apache,一个数据库,当然还有PHP。

    这些说明将适用于大多数现代Windows操作系统,如Windows 10、7和Vista。如果你使用的是旧版本的Windows,你应该看看传统的Windows安装文档。

    Windows 可能需要一些额外的配置来使 PHP 正常工作,所以一定要查看推荐的 Windows 配置文档。你只需要做一些小的ini调整。

    如何在macOS上安装PHP

    大多数 macOS 系统都预装了 PHP,所以通常不需要手动安装。

    你所需要做的就是取消对 Apache 配置文件 httpd.conf 中几行代码的注释,你通常可以在 /private/etc/apache2/httpd.conf 中找到。取消这两行的注释,去掉hashtag符号:

    # LoadModule php5_module libexec/httpd/libphp5.so
    # AddModule mod_php5.c
    # LoadModule php5_module libexec/httpd/libphp5.so
    # AddModule mod_php5.c
    # LoadModule php5_module libexec/httpd/libphp5.so
    # AddModule mod_php5.c

    如果你不喜欢某些文件设置的默认值,你可能需要做额外的配置。否则,找到DocumentRoot,然后用这个代码创建并加载一个PHP文件:

    <?php phpinfo(); ?>
    <?php phpinfo(); ?>
    <?php phpinfo(); ?>

    你可以随时用  php –v  命令检查 PHP 的版本,以确保 PHP 被正确安装。

    如果确实需要手动下载 PHP,那么应该安装 Homebrew 并使用这个简单的命令:

    brew install php
    brew install php
    brew install php

    关于PHP扩展的一切

    一旦你已经有了PHP并开始运行,考虑一下扩展是个好主意。这些编译过的库可以增加各种额外的、有用的功能。可以把它们看作是在 PHP 已经提供的功能上增加的插件。其中一些是运行PHP框架所需要的,比如LaravelSymfony

    虽然你完全可以自己编写所有的代码而不去碰扩展,但如果有广泛使用的捷径来使你的生活更容易,就没有理由自己去做。

    PHP已经有了几十个内置的扩展,其中有些必须手动启用,有些可以马上开始使用。你也可以通过像 PECL 这样的网站来安装 PHP 扩展,它承载了数百个第三方软件包。

    PHP手册中也提供了许多扩展的文档,所以你可以掌握使用它们的方法。

    不知道从哪里开始?下面是一些流行的PHP扩展的一小部分:

    • Apache:Apache是WordPress推荐的一个广泛使用的Web服务器软件,因为它与WordPress和PHP的兼容性很好。Apache与PHP捆绑在一起,所以你不需要手动安装它。
    • .NET:.NET是一个流行的软件框架,你可以用它来构建网络应用程序等。它可以与多种语言一起使用,包括PHP。你可能还对PeachPie感兴趣,它允许你在.NET中运行PHP代码。
    • MySQLi:作为旧的MySQL扩展的更好版本,MySQLi使你能够与MySQL数据库软件一起工作。这个是帮助你建立数据库的必备工具。

    每当你安装一个扩展时,你需要取消对它的注释。只要打开php.ini,删除 extension=extensionname 前面的分号 (;)。

    如果你想使你的代码标准化并使用预制库进行构建,你也应该看看这些PHP框架。它们是开始用PHP开发Web应用的一个好方法。

    小结

    不管你使用的是什么操作系统,安装PHP并不是一个多么困难的过程。如果你想做一个WordPress的测试服务器,你会需要它。有抱负的PHP程序员会发现建立一个Web服务器并在其上安装PHP是一个很好的练习。

    确保你通过命令行或从其官方网站下载PHP。你可以得到最新的稳定版本的PHP,也可以得到与WordPress兼容的任何其他版本。

  • 创建和定制WordPress导航菜单的深入浅出教程

    创建和定制WordPress导航菜单的深入指南

    一个WordPress网站如果没有菜单和子菜单,就不算什么了。在WordPress内根据你的喜好定制这些菜单也是很简单的。因此,你的WordPress菜单是一个 “front line”工具,以获得一个高的搜索排名,并保持访问者在网站上。

    WordPress内部的专用屏幕掩盖了你的菜单可以有多复杂。你也能够在你的网站上的几个位置显示菜单。如果你有编码技能,你可以定制你的WordPress菜单,几乎有无限的可能性。

    在这篇文章中,我们将给你一个创建WordPress菜单的深入指南。我们还将向你展示如何利用该功能并以几种不同的方式增强它。

    1. 剖析WordPress的菜单
    2. WordPress菜单结构的不同类型
    3. 如何创建一个自定义的WordPress菜单(3种方法)
    4. 如何加强你的WordPress菜单

    剖析WordPress的菜单

    对于不熟悉的人来说,WordPress菜单通常是一个链接(包括下拉)的集合。它是一个直接的功能,只是你的网站骨架中的一个 “椎体”。

    WordPress网站菜单示例

    WordPress网站菜单示例

    我们将在下一节中更详细地讨论在网站上看到的菜单。现在,你要知道,它们可以放在你想显示的任何地方。你可能只有几个预选的选项(基于小部件的区域)。不过,从技术上讲,菜单可以放在任何地方。

    当然,WordPress的菜单对于导航网站是最重要的。如果你有一个清晰明确的导航菜单,这将有助于用户在你的网站上浏览,它将使你的跳出率下降

    它们也有另一个目的:你的菜单有助于你的搜索引擎优化(SEO)。优化WordPress菜单以利于SEO,更多的是关于舍弃什么,而不是放进什么。对于初学者来说,你可以取消一些元素–如标签云–并保持你所包含的链接的数量较少。

    虽然谷歌允许你在一个页面上最多添加250个链接,但保持你的 “链接价值“是至关重要的。因此,减少外部链接的数量从长远来看对你有好处。

    WordPress菜单结构的不同类型

    你可能已经明白,根据你的应用程序的需要,你可以选择不同的WordPress菜单结构。

    例如,标题菜单是最常见的,因为它们处理的是主要的网站导航。你也会经常看到主导航上方的小菜单,因为这是社交媒体图标、搜索栏等的绝佳位置。

    SAU/CAL的网站有一个 “飞入 “菜单,包括导航和社交链接:

    SAU/CAL网站飞入式菜单

    SAU/CAL网站飞入式菜单

    这个菜单表明,WordPress的菜单有比导航网站更多的使用情况。使用WordPress的内置功能(后面会详细介绍),你可以为你需要的几乎任何东西创建一个菜单。

    与页眉导航一样流行的是页脚。你经常会用这个区域为向下滚动的用户重复你的主要导航。此外,它也是为你的产品和服务提供更多基于上下文的链接的绝佳场所:

    闪电博底部菜单

    闪电博底部菜单

    如果网站使用侧边栏,你还会看到侧边栏内的菜单:

    一个侧边栏导航的例子

    一个侧边栏导航的例子

    虽然在很多情况下你不会在这里看到主要导航,但它是一个传统的社交链接、博客文章档案和更多内容的地方。

    如何创建一个自定义的WordPress菜单(3种方法)

    创建一个WordPress菜单是一个简单的过程,不管你的专业水平如何。有三种主要的方法来完成这项工作:使用WordPress的内置功能;安装一个合适的插件或用代码来弄脏你的手。

    接下来,我们将向你展示如何使用这三种方法创建一个WordPress菜单。

    1. 使用WordPress的内置功能来创建你的菜单

    WordPress有内置的工具来帮助你创建一个菜单。除了最新的用户之外,WordPress管理中的一个专门屏幕对所有的用户来说都是熟悉的。

    WordPress的菜单界面

    WordPress的菜单界面

    当然,使用本地功能来创建你的WordPress菜单有许多好处。首先,你与你的网站有完全的兼容性。而且,你可以使用一个熟悉的界面和本地工具来建立你的菜单。

    要达到这个目的,请前往WordPress内的外观>菜单页面:

    WordPress的菜单链接

    WordPress的菜单链接

    这个屏幕分为几个不同的部分。在顶部,你会发现选择当前菜单或创建一个新菜单的选项:

    菜单选择下拉

    菜单选择下拉

    如果你决定建立一个新的菜单,给它起个名字,并查看菜单设置部分。

    菜单设置选项

    菜单设置选项

    这里有很多复选框,但你有两个主要决定要做:

    • 自动添加顶级页面到菜单中。 这里的 “顶级 “是指你在WordPress中创建的不是其他页面的子页面的页面。例如,一篇博客文章不是一个顶级页面,因为在许多情况下它会有一个父级档案页(例如/blog)。另一方面,一个联系页面通常是顶级的,因为它通常不会有一个父页面。
    • 菜单位置。 每个主题都会有它的菜单位置。除非你改变了主题的核心文件,否则主题开发者已经硬编码了这些菜单位置。有些主题可能允许你通过其设置来定制它们。

    一旦你准备好了,点击创建菜单按钮。屏幕将刷新,并将显示你在你的新菜单中。接下来,看一下屏幕的左侧:

    菜单项的手风琴式菜单

    菜单项的手风琴式菜单

    这个屏幕列出了你网站上所有的帖子、页面、分类法和其他可链接的资产。你通过勾选左边的方框来建立你的菜单,然后点击添加到菜单按钮。

    这将把它们移到菜单屏幕的中央部分:

    在菜单结构部分拖放项目

    在菜单结构部分拖放项目

    在这里,你可以把菜单项目拖到合适的位置。如果你点击每个项目旁边的扩展箭头,你还可以为你的菜单项目设置一个标签,或者删除它。

    展开一个菜单项

    展开一个菜单项

    一旦你点击了保存菜单,你就可以开始了。不过,如果你展开屏幕顶部的屏幕选项菜单,你可以对你的WordPress菜单做更多事情:

    显示选项面板

    显示选项面板

    显示元素组可以让你在左边的侧边栏显示菜单元框。相比之下,显示高级菜单属性组可以显示列表项的链接目标、描述和CSS类。

    菜单屏幕还有一个值得注意的方面。自定义链接框让你设置一个你选择的链接,而不是你网站上预定义的页面:

    自定义链接框

    自定义链接框

    这个选项是你如何将社交媒体链接添加到你的WordPress菜单中。该平台将根据你选择的网站为你拉出正确的图标,让你有机会为你选择的网站提供显示良好的标识。

    2. 使用一个插件来创建你的自定义WordPress菜单

    为WordPress添加功能的直接解决方案是通过插件。上一节已经介绍了为什么WordPress的原生选项几乎是你所需要的全部,但是插件可以扩展这个功能。

    有一个问题是,你是否需要一个专门的(和额外的)插件来创建一个WordPress菜单,尽管这样做有很多好的理由。对于初学者来说,你经常会根据你在默认设置下无法访问的风格来制作一个菜单。特定的响应式设计、”巨型菜单 “等等,都可以通过插件来实现。

    更重要的是,你可以使用一个专门的编辑器建立菜单,并在很多情况下从预设模板中选择。再加上广泛的定制选项,你有一个 “无代码 “解决方案,将提供一个适合你的网站的WordPress菜单。

    例如,Max Mega Menu插件在你能实现的方面没有任何意外:

    Max Mega Menu插件

    Max Mega Menu插件

    一旦它被安装和激活,你会在WordPress内发现一个新的Mega Menu面板:

    WordPress内的Menu Locations链接

    WordPress内的Menu Locations链接

    如果你看一下Menu Locations屏幕,你会发现有更多的自定义功能供你使用:

    Max Mega Menu的菜单位置屏幕

    Max Mega Menu的菜单位置屏幕

    你还可以应用菜单主题,并以类似于市场上一些最好的页面生成器的范围来编辑它们:

    Max Mega Menu中的 "菜单主题 "屏幕

    Max Mega Menu中的 “菜单主题 “屏幕

    我们可以在这里挖掘更多的东西,尽管我们会重复自己。我们鼓励你查看我们以前关于WordPress菜单插件的文章。我们详细介绍了如何选择适合你的插件以及如何使用它。

    3. 编写代码来创建你的自定义WordPress菜单

    为你自己的WordPress菜单编码是一个可靠的方法,可以实现你的勇敢者的目标(或者如果你是一个创建新的WordPress主题的开发者)。当然,你不会每天都打开一个代码编辑器来添加一个菜单。为此,你会使用本地的WordPress工具(或者可能是一个插件)。

    也就是说,如果你想开发主题,学习如何为WordPress菜单编码是一个重要的要求。成功有四个部分

    • 注册你的菜单。
    • 在前端显示WordPress的菜单。
    • 在你的菜单或其项目中显示额外的内容。
    • 定义一个回调。

    我们假设你对代码编辑器很顺手,你有一个可以工作的开发环境,而且你的技能很敏锐。如果你还没有一个主题可以使用,你可以使用WordPress的默认选项,或者从我们的最快WordPress主题列表中挑选一个。

    当你准备好的时候,你要打开主题的 functions.php 文件。注意,这与一般WordPress的同名文件不同。在这里,你需要注册你的菜单。换句话说,你必须告诉WordPress在外观>菜单页面上显示什么。要做到这一点,你需要使用register_nav_menus()函数。

    function register_my_menus() {
    register_nav_menus(
    array(
    ‘header’ => __( ‘Header Menu’ ),
    ‘other’ => __( ‘Other Menu’ )
    )
    );
    }
    add_action( ‘init’, ‘register_my_menus’ );
    function register_my_menus() {
    register_nav_menus(
    array(
    ‘header’ => __( ‘Header Menu’ ),
    ‘other’ => __( ‘Other Menu’ )
    )
    );
    }
    add_action( ‘init’, ‘register_my_menus’ );
    function register_my_menus() {
    register_nav_menus(
    array(
    'header' => __( 'Header Menu' ),
    'other' => __( 'Other Menu' )
    )
    );
    }
    add_action( 'init', 'register_my_menus' );
    

    这段代码告诉WordPress内的Manage Locations标签显示两个菜单:Header MenuOther Menu

    在WordPress中注册菜单

    在WordPress中注册菜单

    接下来,你必须使用wp_nav_menu()函数来显示你的菜单。你要把它添加到与你想显示菜单的地方相对应的模板文件中。在我们的例子中,我们要用头,所以我们要在主题的header.php文件中添加以下代码:

    wp_nav_menu( array( ‘theme_location’ => ‘header’ ) );
    wp_nav_menu( array( ‘theme_location’ => ‘header’ ) );
    wp_nav_menu( array( 'theme_location' => 'header' ) );
    

    可能是这段代码被包裹在 if 语句中,和你的其他一些菜单一起,所以你要遵循你发现的惯例。

    在这一点上,你可以像其他的菜单一样在WordPress中工作。虽然,你可能也想考虑为你的菜单项添加额外的内容。例如,你可以扩大定义的数组,以包括将在输出时呈现的HTML标签:

    wp_nav_menu(
    array(
    ‘menu’ => ‘primary’,
    ‘link_before’ => ,
    ‘link_after’ => ,
    )
    );
    wp_nav_menu(
    array(
    ‘menu’ => ‘primary’,
    ‘link_before’ => ”,
    ‘link_after’ => ”,
    )
    );
    wp_nav_menu(
    array(
    'menu' => 'primary',
    'link_before' => '',
    'link_after' => '',
    )
    );
    

    你在这里的最后一项任务是定义一个回调。默认情况下,当没有找到指定的菜单时,WordPress会显示一个填充的菜单。作为一种选择,当没有选择自定义菜单时,WordPress会显示一个页面的菜单。如果这不是你想要的动作,你可以为 theme-location 参数设置一个不同的参数,也可以添加一个 fallback_cb 参数:

    wp_nav_menu(
    array(
    ‘menu’ => ‘primary’,
    // do not fall back to first non-empty menu
    ‘theme_location’ => ‘__no_such_location’,
    // do not fall back to wp_page_menu()
    ‘fallback_cb’ => false
    )
    );
    wp_nav_menu(
    array(
    ‘menu’ => ‘primary’,
    // do not fall back to first non-empty menu
    ‘theme_location’ => ‘__no_such_location’,
    // do not fall back to wp_page_menu()
    ‘fallback_cb’ => false
    )
    );
    wp_nav_menu(
    array(
    'menu' => 'primary',
    // do not fall back to first non-empty menu
    'theme_location' => '__no_such_location',
    // do not fall back to wp_page_menu()
    'fallback_cb' => false
    )
    );
    

    一旦你理解了如何创建一个WordPress菜单,你就可以开始增强其功能。我们将在最后一节看一下这个问题,为WordPress创建一个自定义的菜单元框。

    如何增强你的WordPress菜单

    因为这一部分是高级的,我们在继续之前会做一些假设:

    • 你知道如何用PHP创建一个WordPress菜单。
    • 你的PHP技能足够好,可以跟随一些高级主题。
    • 你知道如何注册和初始化一个WordPress插件。

    这超出了本文的范围,但你可以使用WordPress插件模板生成器来创建一个新的、标准化的插件模板。

  • 网络开发中的Git:了解一个项目的典型工作流程

    网络开发中的Git

    网络开发与协作有着内在的联系。大多数时候,你会和其他开发者一起工作,即使没有,Git 也能在很多其他方面帮助你。

    Git 是控制我们制作的应用程序的版本的软件。单打独斗的开发者、大公司,甚至是世界上最大的开源项目 Linux 都在使用它。

    作为一个网络开发者,知道如何正确使用Git进行网络开发是极其重要的。我们不只是在谈论 “git add”、”git commit “和 “git push”。你应该知道用Git创建一个web项目的整个工作流程。

    1. 为什么使用Git?
    2. 网站开发的基本 Git 工作流程
    3. 如何在Kinsta使用Git

    为什么要使用Git?

    这些只是开始使用 Git 的部分原因:

    • 组织:与其用v1、v2、v3等文件夹来管理项目,不如用一个专门的数据库来存储所有版本的文件。
    • 协作:Git 可以让你和其他人同时在同一个项目上工作而不产生冲突。
    • 开源:Git是开源的,但它也是我们用来协作和创造伟大的开源软件的工具。任何人都可以在GitHubBitbucket等平台上向开源项目提出拉取请求。
    • 平台的灵活性:如今,你有许多不同的Git托管服务可以选择,比如Gitlab、GitHub、Bitbucket和SourceForge。你甚至可以为你的所有项目使用一个自我托管的解决方案。
    • 轻松备份:轻松地撤销错误,永远不会丢失你的项目代码库。

    我们已经提过一两次GitHub这个词了,那么Git和GitHub之间有什么区别?

    如果你对 Git 完全陌生,可能会感到困惑。简单地说,Git 和 GitHub 是相关但不同的工具

    Git 是我们用来控制文件变化的版本控制系统(VCS),而 GitHub 是我们用来在线存储项目文件及其 Git 历史的服务(位于项目的 .git/ 文件夹中)。

    Git安装在本地,在你的机器上,如果没有像GitHub或GitLab这样的托管服务,就很难与其他开发者进行协作。

    GitHub通过增加其他改善协作的功能,如克隆、分叉和合并,为Git增压。这两个工具结合在一起,为你带来了一个相对友好的生态系统,可以开发、管理并向其他人展示你的项目。

    专注于开发,而不是托管。给我们的管理应用程序托管一个旋转。

    大的IaaS供应商倾向于将事情过度复杂化。跳过过时的仪表盘、臃肿的产品线和令人困惑的内置功能,你将不会使用。在几分钟内部署你的代码。另外,你的第一个月可以得到20美元的优惠。

    网页开发的基本 Git 工作流程

    在接下来的章节中,你将通过亲身实践了解更多关于网页开发的 Git 工作流程。

    安装要求

    如果你还没有安装Git,现在是个好时机。它很容易安装,在大多数操作系统上都可以使用。

    官方下载页面下载,如果你使用的是Linux或macOS,则可以用软件包管理器安装它:

    Git下载页面

    Git下载页面

    为了测试安装是否顺利,在Linux或macOS上通过在应用程序菜单中搜索 “Terminal “来启动终端,或者在Windows上打开Git bash(默认安装有Git)。

    然后输入:

    git --version

    Git版本

    Git版本

    如果你得到一个Git版本作为回应,你就可以开始了。

    我们还需要一个GitHub账户,所以请确保注册或登录GitHub:

    GitHub的注册页面

    GitHub的注册页面

    一旦你安装了Git并登录了GitHub账户,就可以进入下一节了。

    协作项目的基本Git工作流程

    如前所述,大部分时间你都不会单独开发项目。协作是一项关键技能,而Git和GitHub可以帮助我们把它变成一个简单而有效的过程。

    一个Git项目的典型工作流程是这样的:

    1. 通过克隆版本库或 repo 获取项目的本地副本。如果你要合作,你应该先分支这个 repo。
    2. 创建一个分支,用你要做的功能的一个代表性名称。
    3. 编辑该项目。
    4. 在你的本地机器上提交修改。
    5. 推送修改内容到远程版本库。
    6. 向原始版本创建一个拉取请求。
    7. 合并和解决原始 repo 的主分支中的冲突。

    教程

    现在是我们动手的时候了!

    在本指南中,你将创建一个简单的HTML网站。为了实用起见,你将把HTML网站仓库的基本项目分支到你的GitHub账户。所有公共可用的软件库都可以这样做。

    Info

    分支是一个独立的版本库副本,你可以在不影响原项目的情况下管理和修改。另一方面,克隆一个仓库,只是创建一个文件的本地副本。

    要分支这个HTML网站,请到这个GitHub仓库,点击位于页面右上方的Fork按钮:

    GitHub分支

    GitHub分支

    现在你有一个原始版本的分叉,只在你的GitHub账户上可用。在你开始提交修改之前,它是完全一样的 repo。

    正如你所看到的,分叉一个公共的 repo 只需要几秒钟。这对开源项目来说是很好的,但请记住,如果你的组织有一个私有的 repo,在尝试分叉之前,你需要作为一个贡献者加入。

    现在是时候把你的分叉带到你的本地机器上了。要做到这一点,你需要用 git clone 命令来克隆它,它可以从远程服务器上获取 Git 仓库:

    git clone remote_url

    你需要把 remote_url 替换成你的分叉的URL。要获得GitHub repo的确切URL,请进入其页面并点击代码。然后选择SSH,并复制它给你的链接:

    SSH URL.

    SSH URL.

    你要运行的克隆分支 repo 的命令是:

    git clone git@github.com:yourusername/HTML-site.git
    git clone git@github.com:yourusername/HTML-site.git
    git clone git@github.com:yourusername/HTML-site.git

    当你克隆一个 repo 时,你会得到一个带有其名称的文件夹。这个文件夹里有项目的源代码(在这里是指HTML网站)和Git repo,它位于一个名为.git的文件夹里。

    你可以通过在图形化文件管理器中打开新的文件夹,或者在终端用 ls 或 dir 命令直接列出这些文件,来查看新目录中的文件列表:

    # Linux/macOS
    ls HTML-site/
    # Windows
    dir HTML-site
    .git images .gitignore index.html LICENSE README.md styles.css
    # Linux/macOS
    ls HTML-site/
    # Windows
    dir HTML-site
    .git images .gitignore index.html LICENSE README.md styles.css
    # Linux/macOS
    ls HTML-site/
    # Windows
    dir HTML-site
    .git images .gitignore index.html LICENSE README.md styles.css

    这个HTML网站非常简单。它使用了Bootstrap的实用功能和一些来自Unsplash的图片,在那里你可以为你的网站下载免费图片

    如果你在浏览器中打开index.html文件,你会看到一个有一些图片的简单页面:

    我们正在创建的简单网页

    我们正在创建的简单网页。

    是时候玩一玩这个项目了。它感觉非常空洞,也许一个带有网站名称的标题可以增强用户体验。

    要做到这一点,进入HTML-site目录,创建一个名为 header 的分支。在这个新的分支中,我们可以编辑所有的文件,并尽可能多地实现代码,因为这不会影响主(原始)分支。

    运行以下命令:

    git checkout -b header
    git checkout -b header
    git checkout -b header
    

    这将创建一个名为 “header “的分支,并在这之后将你切换到它。这相当于:

    git branch header
    git checkout header
    git branch header
    git checkout header
    git branch header
    git checkout header
    

    为了确认一切顺利,运行:

    git status
    # On branch header
    # nothing to commit, working tree clean
    git status
    # On branch header
    # nothing to commit, working tree clean
    git status
    # On branch header
    # nothing to commit, working tree clean
    

    你会看到你已经从 “主 “分支转移到 “头 “分支,但工作树仍然是干净的,因为我们没有编辑过任何文件。

    在你喜欢的代码编辑器中,打开分支项目中的index.html文件。这个文件包括一些指向Bootstrap 5的链接,所以我们可以利用该框架的即用型组件。

    index.html文件的 <body> 标签内和图片容器上方添加以下代码:

    <header>
    <nav class=“navbar navbar-light bg-light”>
    <div class=“container-fluid”>
    <span class=“navbar-brand mb-0 h1”>HTML site</span>
    </div>
    </nav>
    </header>
    <header>
    <nav class=”navbar navbar-light bg-light”>
    <div class=”container-fluid”>
    <span class=”navbar-brand mb-0 h1″>HTML site</span>
    </div>
    </nav>
    </header>
    <header>
    <nav class="navbar navbar-light bg-light">
    <div class="container-fluid">
    <span class="navbar-brand mb-0 h1">HTML site</span>
    </div>
    </nav>
    </header>

    新的页眉

    我们的网页上有一个新的页眉。

    看起来好多了! 你可以自由地进行其他分支和修改。

    一旦你完成了对项目的编辑,就该把所有的修改提交到你的本地版本。在项目目录中,在终端键入以下内容:

    git add –all
    git commit -m “Added simple header in index.html file”
    git add –all
    git commit -m “Added simple header in index.html file”
    git add --all
    git commit -m "Added simple header in index.html file"

    重要的

    所有的Git提交信息都必须是清晰而有意义的。每当你添加一个提交,你和你的队友都应该能够识别该提交中发生了什么,这样如果出现了错误,你就可以很容易地修复它。

    当你刚开始一个项目时,有描述性的提交信息是很常见的,但随着时间的推移和重点的转移,信息的质量往往会下降。请确保保持良好的命名实践。

    现在你已经向本地版本库提交了文件(现在还只能在你的电脑上使用),现在是时候把它推送到远程版本库了。

    如果你试图像平常一样推送提交,那是行不通的,因为你现在是在头层分支上工作。你需要为 header 设置上游分支:

    git push –set-upstream origin header
    git push –set-upstream origin header
    git push --set-upstream origin header

    从2021年8月13日开始,GitHub要求使用SSH认证,所以请确保你的密钥设置正确。

    在这之后,你应该可以在你的分叉仓库中看到一个名为 header 的新分支(例如:https://github.com/yourusername/HTML-site/branches):

    “header” 分支

    “header” 分支.

    要向原始版本创建一个拉动请求,请点击 “Compare“,在Active branches部分。

    这将引导你进入一个拉取请求,你需要选择你想与哪个分支(原始分支或你的分叉)合并。默认情况下,它显示的是与基本仓库合并的选项:

    在GitHub上创建拉动请求

    在GitHub上创建拉动请求

    一旦你点击了拉动请求选项,你就需要对所做的修改写一个简短的描述,就像你先前的提交一样。再一次,尽量简明扼要,但要描述清楚:

    编写拉动请求信息

    编写拉动请求信息

    点击Create pull request按钮,等待基础仓库所有者接受或反馈你的修改。

    祝贺你 – 你刚刚完成了网页开发中常见的 Git 工作流程的所有步骤。

    这是一个非常基本的例子,但其逻辑可以延伸到各种规模的项目中。请确保你在更大的合作项目中也能严格执行这个工作流程。

    如何在Kinsta使用Git

    如果你是Kinsta的用户,你已经有两种方法可以在MyKinsta门户中使用Git和GitHub。

    我们先来看看第一种方法。你可以很容易地通过SSH进入并从任何Git托管服务(如GitHub、Gitlab或Bitbucket)中提取一个Repo。

    要做到这一点,进入你的Sites标签,选择一个网站,然后进入你的SSH细节部分,并复制SSH终端命令。

    SSH细节部分

    SSH细节部分

    通过SSH登录到你的网站,在你的终端粘贴上面的命令,然后进入你的网站的公共文件夹(位于/www/yoursitename/下)。这里是你所有WordPress文件的位置,所以你可以拉下一个Git repo,里面有你一直在工作的定制主题或插件。

    下面是你如何用一个简单的命令拉下一个Git repo:

    ssh yourkinstasite@1.2.3.4 -p PORT “cd /www/my_site/public && git pull https://github.com/user/repo.git”
    ssh yourkinstasite@1.2.3.4 -p PORT “cd /www/my_site/public && git pull https://github.com/user/repo.git”
    ssh yourkinstasite@1.2.3.4 -p PORT "cd /www/my_site/public && git pull https://github.com/user/repo.git"
    

    重要

    SSH应该由高级用户使用。如果你不熟练操作,不要犹豫,先联系Kinsta支持。

    现在,引入Kinsta新的GitHub部署功能,你可以从GitHub仓库部署一个完整的WordPress网站。

    你的GitHub仓库应该包括WordPress核心文件的副本,当然还有你的网站在wp-content文件夹下的内容。

    让我们快速看一下这个选项。

    去你公司的一个网站,创建一个暂存环境。这不会超过两分钟的时间。

    暂存环境

    暂存环境

    一旦你进入了你的暂存站点,进入Deployment选项卡,点击Begin setup按钮。你会看到一个GitHub模版,让Kinsta与你的GitHub账户连接。

    GitHub部署标签

    GitHub部署标签

    现在,选择你要拉动你的网站的 repo。

    将Kinsta连接到GitHub

    将Kinsta连接到GitHub。

    最后,部署你的网站,并通过你的暂存网站URL访问它。

    立即部署按钮

    立即部署按钮。

    这项功能目前还处于Beta阶段,但很快每个Kinsta用户都会有机会使用它。

    如果你知道如何很好地使用Git和Kinsta,那么它们将是一个强大的组合。

    小结

    如今,Git是网络开发中必须学习的工具,因为大多数时候你都会与他人合作,以创建最好的项目。

    在这篇文章中,我们讨论了在项目中使用Git的一些重要原因,并向你展示了在Git repo中进行协作的基本工作流程。

  • 什么是WordPress版本控制及最佳解决方案

    什么是WordPress版本控制及最佳解决方案

    WordPress版本控制可以帮助你跟踪你的WordPress网站的变化,监测正在发生的事情,并在需要时回滚这些变化。这些变化可能是简单的调整,比如对帖子的编辑,也可能是更多的技术变化,比如对网站代码库的编辑。

    在这篇文章中,我们将解释更多关于什么是版本控制,以及它如何适用于WordPress。然后,我们将探讨一些你可以用来在你的WordPress网站上实施版本控制的工具。

    1. 什么是WordPress版本控制?
    2. WordPress版本控制的最佳选择

    什么是WordPress版本控制?

    版本控制系统跟踪一个(或多个)文件的变化,以便你可以看到事情是如何变化的,如果需要,可以恢复到以前的版本。

    应用于WordPress,版本控制让你跟踪你或其他人对你的网站所做的修改。

    在WordPress的上下文中,版本控制可以跟踪以下行动:

    • 更新或发布一个帖子。
    • 安装或卸载一个新的插件。
    • 改变你的WordPress主题。
    • 更新你的核心软件或任何主题或插件。

    你不仅可以看到这些变化,而且还可以在需要时撤销它们或回滚到以前的版本。

    在开发的意义上,版本控制也可以帮助开发者管理代码库的变化,让他们在 “合并 “到主代码库之前克隆一些代码段来进行工作。根据你的WordPress网站的复杂性,你可能也会发现这个功能很有帮助。

    在WordPress中,版本控制的一个非常有限的例子是WordPress的内置修订功能,它可以让你比较一个帖子或页面的变化,并在需要时恢复以前的版本:

    内置的WordPress修订功能

    内置的WordPress修订功能

    但是,你也可以实施更强大的系统,而且,根据你使用的WordPress版本控制系统,你将能够跟踪你的网站的文件和网站的数据库的变化。

    WordPress版本控制的好处是什么?

    设置WordPress版本控制有几个大的好处。

    首先,版本控制让你在对你的网站进行修改时更有信心。做了一个改动,把一些东西搞乱了?不用担心,你可以撤消它,恢复到你网站的工作版本。

    第二,如果你有一个帮助你的WordPress网站的团队,你将能够更有效地一起工作,因为你可以跟踪正在发生的一切。此外,如果你使用一种支持分支和合并的方法,开发人员将能够复制你的网站的部分代码来进行工作,然后在准备就绪时将这些代码 “合并 “到你的实时网站。

    最后,版本控制帮助你监控你的网站正在发生的事情。例如,版本控制让你看到你的一个编辑是否更新了一个已经发布的帖子。如果他们这样做了,你可以看到他们的改动,并在需要时轻松地回滚。

    所以,现在你对在你的网站上设置版本控制有了更多的了解,让我们来看看WordPress版本控制的一些解决方案。

    WordPress版本控制的最佳选择

    有几种WordPress控制的解决方案,取决于你的技术知识和你希望你的版本控制系统有多全面。

    下面是我们将详细介绍的WordPress版本控制解决方案:

    • Git – 有几种方法可以让你在WordPress中使用Git,包括像Github、GitLab、Bitbucket等托管仓库。要了解更多,请确保阅读我们关于Git与Github的指南。
    • VersionPress插件 – 它也实现了Git,但以一种更自然的方式,尽管它仍在测试阶段。
    • WP Rollback – 一个非常简单的系统,用于回滚主题和插件的更新。
    • Bedrock – 由Root团队创建,Bedrock的设置方式可以让你轻松维护一个版本控制的仓库。

    当然,你也可以利用WordPress内置的Revisions系统来跟踪和撤销修改。

    如何在WordPress中使用Git

     

     

     

     

     

    Git是一个开源的分布式版本控制系统,由Linus Torvalds在2005年创建。它的技术性较强,但它是最流行的版本控制系统之一,被所有类型的开发者使用。也就是说,它不是专门针对WordPress的。

    通常情况下,你想在GitHubBitbucket或GitLab这样的托管仓库中管理你的WordPress网站的代码。然后,你可以根据需要将你的网站从该仓库部署到你的实时服务器。

    如果你想在WordPress中使用Git,你有几个不同的选择。

    首先,如果你在Kinsta托管,我们有Git客户端,所以你可以通过SSH进入并从任何服务中提取你的Git仓库,包括GitHub、GitLab和Bitbucket。

    或者,还有其他一些针对WordPress的和通用的工具来帮助你从Git上进行部署。

    如果你想要一个针对WordPress的解决方案,两个不错的选择是:

    • WP Pusher – 让你从任何Git仓库部署主题和插件。注意,这个工具专门针对主题和插件。
    • Revisr – 提供一个更全面的方法来使用WordPress的Git。你可以在一个Git仓库中跟踪你的整个网站,包括你的数据库。你也可以从你的WordPress仪表盘中提交修改,恢复文件,并推/拉修改到一个远程仓库(如Bitbucket或GitHub)。

    Revisr插件的界面

    Revisr插件的界面

    而在普通方面,你也可以使用BeanstalkDeployBot等工具。

    如何使用VersionPress进行版本控制

    VersionPress是一个开源项目,旨在通过对网站的文件和数据库进行版本控制,”将Git的全部力量带到WordPress”。虽然它也依赖Git,但VersionPress有自己的部分,因为它的做法与上面的方法有点不同。

    VersionPress的独特之处在于,它跟踪每一个细小的变化,并以自然的人类语言进行记录。例如,VersionPress不只是记录数据库的变化,而是告诉你有人 “更新了Hello World!”的帖子。很明显,这使得Git在WordPress网站的背景下变得更加有用和易于使用。

    例如,将VersionPress中的操作列表与上面Revisr截图中的操作列表进行比较。看到区别了吗?

    VersionPress的界面

    VersionPress的界面

    它还为你提供了一个选项,可以撤销或回滚任何这些变化,备份你的网站,创建暂存环境和合并数据库,推送到托管的Git存储库,等等。

    虽然这听起来很不错,但重要的是要注意VersionPress仍然被认为是一个 “开发者预览版”。开发者说,你不应该在生产网站上使用它。

    安装VersionPress,你需要在你的服务器上安装Git并启用proc_open()

    如何使用WP Rollback来撤销更新

    WP Rollback并不像之前的解决方案那么全面,它只适用于WordPress.org的主题和插件。不过,在更有限的基础上,它确实是一个非常有用的版本控制工具。

    你是否曾经更新过一个WordPress主题或插件,但它却破坏了你网站上的某些东西?

    好吧,首先,你应该使用一个暂存站点,这样就不会发生这种情况了!但是,如果你是在一个网站上运行更新,那么你就应该使用一个暂存站点。但是,如果你在一个真实的网站上运行更新,并且出了问题,能够回滚到之前的版本是很有帮助的,至少在你能找出问题所在之前是这样。

    为了帮助你做到这一点,WP Rollback在你网站的插件界面上增加了一个新的Rollback按钮,让你可以把任何WordPress主题或插件 “回滚 “到以前的版本。

    新的Rollback选项

    新的Rollback选项

    你可以选择你想恢复的确切版本:

    版本控制让你对你网站的代码有足够的控制

    版本控制让你对你网站的代码有足够的控制

    小结

    版本控制可以帮助你跟踪你的WordPress网站的变化,这样你就可以保持对正在发生的事情的关注,并在需要时回滚。

    如果你在一个团队中工作,版本控制还可以通过一个分支和合并的系统帮助你采用更有效的工作流程。团队成员可以复制你的网站的一个特定部分来工作,然后在准备好的时候把它 “合并 “到主代码中。

    对于WordPress,你有几个版本控制的选择,取决于你的需求和技术知识。

    对于开发者来说,Git是一个很好的版本控制的选择。Kinsta支持Git客户端,你也可以使用WP Pusher(用于主题和插件)、Revisr、Beanstalk和DeployBot等工具,从GitHub等托管的Git存储库进行部署。

    对于更简单、技术含量更低的实施,你可以选择内置的WordPress修订功能和/或WP Rollback插件。

    最后,虽然它还没有准备好,但VersionPress提供了最针对WordPress的Git实现,绝对是一个值得关注的项目。

    你对如何开始使用WordPress的版本控制有什么问题吗?请在评论中告诉我们。