作者: tianbao

  • 如何在WordPress中编辑CSS(编辑、添加和自定义网站的外观)

    如何在WordPress中编辑CSS

    想尝试编辑WordPress CSS,但不知道从哪里开始?使用CSS样式,您可以全局或在某些页面上编辑网站的外观。添加颜色,分隔某些元素,设计布局,并从根本上改变WordPress主题中任何内容的外观。

    如果您想更熟悉WordPress的开发环境,或者只是想更好地控制您网站的外观,您需要知道如何在WordPress中添加CSS(以及如何更改已经存在的内容)。

    通过编辑您的主题并包含您自己的其他CSS,您将能够优化您网站上的每个视觉元素。今天,我们将仔细研究它。

    1. 什么是CSS编辑?
    2. WordPress和CSS
    3. 如何使用CSS自定义您的WordPress主题
    4. 如何在WordPress中添加自定义CSS
    5. 在哪里学习CSS

    什么是CSS编辑?

    CSS代表Cascading Style Sheets,它是除了HTML之外最流行的网络语言。两者相辅相成,因为CSS用于设置HTML元素的样式。HTML为网站的外观奠定了基础,而CSS用于进一步设置样式。

    CSS代码示例

    CSS代码示例(来源:w3schools.com)

    CSS使您能够使网站具有响应性、添加颜色、更改字体、修改布局以及总体上微调网站的视觉呈现。与HTML和JavaScript一样,CSS是一种前端客户端语言,这意味着它在用户端执行,而不是在后端服务器上执行。

    在深入研究WordPress开发时,HTML、CSS、JavaScript和PHP是您需要了解的语言。这就是核心CMS以及它的许多主题和插件的内置内容。

    但是,即使您不是网页设计师或开发人员,也可以选择一点CSS,因为您可以使用它来移动网站上的元素或设置样式,或者对主题进行小的美学更改以更好地适应您。

    WordPress和CSS

    在WordPress中,CSS有点不同。它由主题控制,主题由模板文件、模板标签,当然还有CSS样式表组成。虽然由您的主题生成,但所有这些都可以由您编辑。

    模板文件将您网站的各个部分拆分为多个部分(例如header.php或archive.php),并且模板标签用于调用它们以及数据库中的其他内容。这些文件实际上主要由PHP和HTML组成,但如果需要,您可以添加CSS。

    您真正需要的是stylesheet或style.css。要更改您网站的外观,您需要了解如何在此文件中添加和编辑代码

    如何使用CSS自定义您的WordPress主题

    如果您想自定义主题并使用CSS更改网站的外观,您需要添加自己的代码或编辑已有的代码。有很多方法可以添加CSS,而无需接触任何主题文件,但要更改现有的主题代码,您必须访问您网站的样式表。

    当您进行这些更改时,您应该知道一件事:当您的主题更新时,您对style.cssfunctions.php或其他主题模板文件所做的任何编辑都将被删除。一般来说,您不应该在不使用子主题的情况下在编辑器中直接更改您的网站。

    样式表就像您网站的“指令列表”,准确设置其样式以及CSS代码的处理方式。这是您进行大量编辑的地方,但我们还将向您展示如何访问其他主题模板文件,例如header.php和footer.php

    有两种方法可以访问WordPress网站的样式表:通过WordPress仪表盘或通过FTP客户端。我们将分别介绍这两种方法。

    自己做这个不方便吗?考虑聘请WordPress开发人员为您处理该步骤。

    在仪表盘中编辑WordPress CSS

    访问CSS样式表的最简单、最方便的方法就是在WordPress仪表盘中。无需安装FTP程序或代码编辑器。您可以使用内置的语法突出显示和函数文档直接编辑任何文件。

    在对核心文件进行任何重大编辑之前,您应该始终备份您的WordPress站点。如果您是CSS新手,很容易意外犯下可能破坏网站外观的错误,并且可能很难弄清楚如何恢复您的更改。

    完成备份和子主题后,登录到您的后端。您可以通过转到菜单并单击外观 > 主题编辑器来找到编辑器。

    您应该会看到一个弹出窗口,警告您不要直接编辑这些文件。不用担心,只需单击“I understand”即可。在进行任何重大更改之前,使用子主题并备份您的网站只是一个警告。按照这些步骤操作,就可以安全地进行编辑了。

    直接编辑WordPress文件

    直接编辑WordPress文件

    现在你进来了!默认情况下,您应该在样式表上,但如果没有,请查看右侧的菜单以查看您的主题文件。

    除了style.css,您还可以访问functions.php、header.php和single.php等模板文件。所有这些都会影响您网站上某些页面的行为方式。

    但是在深入研究这些特定文件之前,您应该熟悉PHP。

    在WordPress主题中编辑style.css样式表

    在WordPress主题中编辑style.css样式表

    请记住:您在此处所做的大多数CSS更改都是全局性的。例如,如果您将H1标题更改为某种字体,它将对您网站上的每个页面生效。您需要使用特殊语法来自定义特定页面的样式。

    直接编辑主题文件

    如果您无法访问主题编辑器或更喜欢通过FTP进行工作怎么办?使用后端编辑器更容易,但某些主题或插件可能会禁用它。如果是这种情况,您需要通过FTP连接到您的网站

    FTP或文件传输协议允许您远程访问和修改网站的文件。您需要做的第一件事是下载FileZilla或任何其他FTP客户端。

    接下来,您应该联系您的主机并询问您的FTP凭据(主机、端口和用户名/密码,如果适用)。如果您的主机有仪表盘,您可以通过登录找到它们。

    拥有它们后,启动FTP客户端并输入该信息。如果它不起作用,请尝试将“sftp://”放在主机部分的URL之前。

    使用FileZilla

    使用FileZilla

    进入后,您可以找到style.css文件,方法是单击wp-content文件夹将其打开,然后单击主题文件夹(如TwentyTwenty主题),然后滚动直到看到style.css。

    双击打开它(或右键单击并选择View/Edit)并进行修改。记得保存并上传回服务器。

    如果您需要编辑home.php、single.php、archive.php等其他模板文件,您可以在style.css所在的文件夹中找到它们。

    编辑您的主题文件,无论是通过FTP还是仪表盘,并不总是必要的。事实上,如果你只是添加一些额外的代码,最好避免这样做。

    对于少量添加,这是将CSS添加到WordPress网站的最佳方式。

    如何在WordPress中添加自定义CSS

    如果您不想编辑现有的CSS代码,而只想添加自己的样式,强烈建议使用以下方法之一:WordPress定制器或使用专用插件。

    一方面,通过其中一种方法添加的CSS代码更易于访问和使用。如果您想稍后进行修改,您无需担心将新CSS放在错误的位置或忘记添加它的位置。

    此外,通过其中一种方法添加的CSS在您的主题更新时不会丢失(尽管如果您更改主题,它可能仍然会消失)。

    这意味着您不需要使用子主题,如果出现问题,您所要做的就是删除刚刚添加的CSS。

    请注意,您仍然应该保留网站的备份,因为有些人报告说在重大更新期间偶尔会丢失他们的CSS。不过,这种方法比直接编辑主题文件要可靠得多。

    虽然您可以将代码添加到style.css并收工,但如果您不想创建子主题,对主题中的现有CSS进行重大编辑,并可能最终删除所有工作,那么最好在WordPress定制器中使用附加CSS选项或安装插件。

    1.通过WordPress定制器编辑CSS

    不要使用主题编辑器,试试这个。登录到您的WordPress后端,然后单击外观 > 自定义以打开主题自定义屏幕。您将看到您网站的实时预览,左侧有用于自定义元素(如颜色、菜单或其他小工具)的选项。

    在此菜单的最底部,您应该找到额外CSS框。

    点击打开它。您将被带到一个带有代码输入框和一些说明的新屏幕。额外CSS屏幕包括语法突出显示,就像主题编辑器一样,以及让您知道代码是否错误的验证。

    WordPress中的额外CSS

    WordPress中的额外CSS

    您编写的任何代码都会自动出现在右侧的预览区域中,除非它有错误(尽管您可以选择发布它)。

    完成工作后,您可以发布代码、安排其生效时间,或将其保存为草稿以供日后处理。您甚至可以获得预览链接以与他人分享。

    如您所见,Additional CSS页面在许多方面都比主题编辑器更强大,并且更适合添加代码而不是弄乱核心文件。

    您在此处编写的CSS代码会覆盖主题的默认样式,并且不会在主题更新时消失。如果您无法在预览中看到它“实时”,请仔细检查您是否在CSS代码中使用了正确的选择器。

    就像主题编辑器一样,默认情况下CSS是全局的,但您可以编写针对特定页面的代码。

    一个缺点是,如果你切换主题,你写的任何东西都会被删除。确保在迁移到新主题之前备份您的CSS,否则您最终可能会丢失大量工作。

    如果您正在努力使用此选项,或者想要一个跨主题的解决方案并且可以更轻松地定位某些页面,您应该尝试使用插件。

    2. 使用插件向WordPress添加自定义CSS

    您可能想使用插件将CSS添加到WordPress有几个原因。虽然该功能类似于附加CSS菜单,但即使您切换/更新主题,样式通常也会保持不变。

    您可能还更喜欢他们的UI,或者喜欢自动完成等额外功能。有些插件甚至可以让你通过下拉菜单来构建CSS ,而不必自己编写。

    Simple Custom CSS

    Simple Custom CSS是最流行的CSS编辑器插件,因为它易于使用、最小的界面和轻量级的后端。简而言之,它是一个非常小巧的WordPress插件,但功能强大。

    Simple Custom CSS插件

    Simple Custom CSS插件

    设置轻而易举,您不会看到对性能的负面影响。它适用于任何主题,包括语法突出显示和错误检查。

    Simple Custom CSS and JS Simple Custom CSS and JS插件

    Simple Custom CSS and JS插件

    Simple Custom CSS and JS是一个不错的选择。它还允许您定位页眉、页脚、前端,甚至是管理后端。

    SiteOrigin CSS SiteOrigin CSS插件

    SiteOrigin CSS插件

    SiteOrigin CSS是另一个选项,它还包括一个传统的CSS编辑器。您可以随时在它和可视化编辑器之间切换。

    WP Add Custom CSS WP Add Custom CSS插件

    WP Add Custom CSS插件

    如果您正在努力将CSS添加到特定页面,WP Add Custom CSS将自定义CSS框添加到编辑屏幕,并且还带有全局样式。

    CSS Hero

    您可能还想考虑尝试使用可视化CSS编辑器。这些将所有复杂的编码转化为一系列易于使用的输入字段和下拉菜单,为您处理所有编程。

    CSS Hero

    CSS Hero

    CSS Hero是一个高级视觉编辑插件,具有一些非常强大的功能(动画、特定设备编辑和非破坏性编辑等等)。

    在哪里学习CSS

    准备好为自己深入研究CSS了吗?这些初学者教程将建立基础知识并教您编写自己的函数式CSS代码所需了解的语法。

    Learn CSS

    Learn CSS

    这可能令人生畏,但除非您尝试做一些真正高级的事情,否则CSS并不太难!更改背景颜色或设置字体样式等简单的事情相当容易,网上有很多例子。

    (建议阅读:50 多种现代字体可在您的WordPress网站上使用

    您可以在Internet上找到的大多数编程教程也是完全免费的。那里有很多关于WordPress信息,而且免费/成本很低。

    这里有几个例子,涵盖了适合初学者的最佳CSS教程。

    • W3Schools CSS教程:在这里可以找到大量信息:深入的教程、示例和参考资料供您使用。W3Schools的教程尽可能简单易学,因此即使您是初学者,这也是一个很好的起点。
    • Codeacademy Learn CSS:通过六个免费的实践课程,您将学习CSS的基础知识。这不是简单的视频教程,而是让您使用实际代码的交互式课程。使用专业版,您还可以进行测验和自由形式的项目。
    • Learn CSS in One Hour:很多人想学习一门新的编程语言,但他们只是没有时间投入。但是,如果您只留出一小时,您可以通过这个免费的20部分课程来学习CSS。即使你最终不是大师,你也应该很好地掌握基础知识。
    • 针对WordPress用户的HTML和CSS基础:正在寻找WordPress特有的内容?如果您一直在为编写HTML和CSS而苦苦挣扎,那么本课程非常适合您。它是付费的,但有52节课和5小时的视频可供学习。

    小结

    作为WordPress用户,一开始接触CSS可能会让人感到困惑。但是一旦你知道如何编辑你的主题文件以及在哪里添加样式,你应该没有更多的麻烦。

    可以从后端或通过FTP编辑主题文件以更改站点的外观,但通常应避免这种情况,除非您需要编辑现有代码。

    如果您只想添加自己的CSS,请使用外观 > 自定义下的额外CSS页面,或者如果您需要更强大的功能,请尝试使用插件。

    除非您使用子主题,否则对样式表的编辑将在主题更新时丢失。附加CSS并非如此。您的代码不会更新,但不要忘记:当您更改主题时,只有插件会保留CSS 。

    无论您选择哪种方法,您都应该定期备份您的网站,包括您添加的样式表和自定义代码。现在是时候使用我们提供的资源来复习您的CSS基础知识了。

  • 简单有效的WordPress调试及故障排查小技巧

    简单有效的WordPress调试及故障排查小技巧

    如果您是Web开发人员,您经常处理网站错误,对吗?无论您是从头开始为网站编写代码,还是部署已经编写好的软件程序,您都一定会遇到错误。这是因为编码错误可能发生在包括WordPress在内的所有类型的计算机程序中。

    但是每个问题都有解决方案,错误也是如此。事实上,作为一名Web开发人员,您的主要职责之一是调试错误或编码错误。这篇文章将全面为您提供调试WordPress编码错误一些有效的信息。

    所以,如果你是WordPress开发者,这个博客对你来说非常方便。我们将在整个博客中为您提供一些杀手级和有效的调试WordPress提示和技巧。

    但在此之前,让我们定义术语调试并给您一个概述。这将帮助您更好地理解后续要点。

    Debug调试说明

    简而言之,调试或调试是指检测和修复软件或计算机程序中的编码错误。通常,Web开发人员是执行调试任务的专业人员。

    开发人员使用许多调试工具来修复代码中的错误。一旦更正,他们会运行进一步的测试以确保程序中不会再次出现错误。需要注意的是,调试是软件开发过程中的一个持续动作。

    Debug调试说明

    要调试一个软件,您可以采用多种策略,包括单元测试、代码审查和结对编程。在发布软件程序之前,Web开发人员的工作是确保软件程序没有错误。

    但是,即使在修复了明显的错误之后,错误也可能出现在软件正式发布后。这是因为几乎不可能一次性识别出产品中的所有错误。用户开始使用该产品后,该程序的一些错误就会显现出来。当用户抱怨错误时,开发人员必须立即修复它们。

    为什么提前调试WordPress网站很重要

    WordPress安全性一样,调试WordPress也很重要。当您设计WordPress网站时,您会利用许多3rd方插件来增强您的网站功能。但是所有这些插件都不太可能为您带来预期的成果。其中许多插件会触发代码冲突,从而削弱您的WordPress网站。

    调试WordPress

    WordPress有一个debug调试模式,可以让您预先检测到这种类型的代码冲突。这使您可以在网站上线之前解决这些问题。因此,在网站上线后修复新出现的网站错误所需的时间和精力会减少。

    7个有效的调试WordPress提示和技巧

    现在,是时候切入正题了,即为您提供调试WordPress站点的可能解决方案。通常,每当我们中的任何人面对我们的WordPress网站崩溃时,我们倾向于停用或卸载我们所有活动的主题和插件。事实上,这是我们被要求做的。并不是说采用这种方法是错误的。

    但这是让您的网站重回正轨的浪费时间和低效的方法。这样,您网站的真正问题也可能会被忽视。因此,你必须想出一个真正的游戏规则改变者,而这正是我们要在这里讨论的——

    如果您愿意了解如何恢复被黑的WordPress网站,可以参考以下链接 –

    如何恢复被黑的WordPress网站?

    WordPress调试插件的可用性

    当涉及到WordPress网站的功能增强时,插件总是很有用的。例如,如果您想通过社交媒体功能丰富您的网站,您可以使用社交媒体插件

    同样,如果您想为您的WordPress网站增强调试功能,您可以使用一流的WordPress调试插件。我们会命名并推荐2个调试WordPress插件——Query Monitor和Debug Bar。

    Query Monitor

    Query Monitor带有一些令人兴奋的WordPress调试功能。它有一个用于WordPress的开发人员工具面板。它可以让您对数据库查询、PHP错误、块编辑器块、挂钩和操作、语言和翻译、重写规则、排队脚本和样式表、HTTP API调用等进行故障排除或调试。

    Query Monitor

    它还包含一些高级功能,例如调试Ajax调用、REST API调用和用户能力检查。该插件的显着特点是它能够通过插件和主题来缩小其输出范围,让您破译低级插件和主题。

    查询监视器也以显示方便的信息而闻名。选择菜单项后,您可以添加管理工具栏菜单以显示当前页面概述,并在面板中显示调试信息。

    Debug Bar

    Debug Bar是一个高度信任的调试WordPress工具,您可以从WP admin中使用它。它使您可以快速访问不同类型的调试信息,例如缓存、查询等。该工具出现在站点的管理栏顶部,使您可以从前端和后端调试信息。

    Debug Bar

    在Debug Bar插件中,您将有几个选项来识别代码中的问题。例如,您可以通过激活WP_DEBUG来启用对PHP警告和通知的跟踪。此外,要找出您网站的性能问题,您可以启用SAVEQUERIES,它会公开和跟踪MYSQL。

    激活WP_DEBUG

    在WordPress中记录任何问题的最简单方法是激活WP_DEBUG,您可以通过编辑wp-config.php文件来完成。WP_DEBUG是WordPress内置的默认调试模式,它有2个子类型。

    一个是WP_DEBUG_DISPLAY,它在屏幕上显示错误,另一个是WP_DEBUG_LOG,它将错误消息保存在wp-content/debug.log中。

    要激活WP_DEBUG,您可以导航到网站的根目录。您可以通过托管服务提供商的文件管理器或使用FileZilla等文件传输协议 (FTP) 客户端来执行此操作。wp-config.php文件将位于public_html文件夹下。

    找到并打开文件后,下一步是复制并粘贴以下代码段:

    // Enable WP_DEBUG mode
    define( ‘WP_DEBUG’, true );
    // Enable Debug logging to the /wp-content/debug.log file
    define( ‘WP_DEBUG_LOG’, true );
    // Disable display of errors and warnings
    define( ‘WP_DEBUG_DISPLAY’, false );
    @ini_set( ‘display_errors’, 0 );
    // Use dev versions of core JS and CSS files (only needed if you are modifying these core files)
    define( ‘SCRIPT_DEBUG’, true );
    // Enable WP_DEBUG mode
    define( ‘WP_DEBUG’, true );

    // Enable Debug logging to the /wp-content/debug.log file
    define( ‘WP_DEBUG_LOG’, true );

    // Disable display of errors and warnings
    define( ‘WP_DEBUG_DISPLAY’, false );
    @ini_set( ‘display_errors’, 0 );

    // Use dev versions of core JS and CSS files (only needed if you are modifying these core files)
    define( ‘SCRIPT_DEBUG’, true );

    // Enable WP_DEBUG mode
    define( 'WP_DEBUG', true );
    
    // Enable Debug logging to the /wp-content/debug.log file
    define( 'WP_DEBUG_LOG', true );
    
    // Disable display of errors and warnings
    define( 'WP_DEBUG_DISPLAY', false );
    @ini_set( 'display_errors', 0 );
    
    // Use dev versions of core JS and CSS files (only needed if you are modifying these core files)
    define( 'SCRIPT_DEBUG', true );

    需要注意的是,这应该插入到/* That’s all, stop editing! Happy blogging. */”。完成后,请务必保存更改。

    启用WPDB错误报告

    如果您使用WPDB类来处理您的数据库,那么进行WPDB错误报告是非常重要的。通过此错误报告,您可以确定您的查询是否运行良好。最重要的是,它还将显示调试WordPress的错误消息。

    $wpdb对象中有一个名为$show_errors的变量。如果将此设置为true,则可以提示WordPress将任何给定查询的SQL错误输出到屏幕上。

    global $wpdb;
    // Before running your query:
    $wpdb->show_errors = TRUE;
    $result = $wpdb->get_results(“SELECT field_value FROM table_name”);
    if(! $result){
    $wpdb->print_error();
    // Or you can choose to show the last tried query.
    echo $wpdb->last_query;
    }
    global $wpdb;
    // Before running your query:
    $wpdb->show_errors = TRUE;
    $result = $wpdb->get_results(“SELECT field_value FROM table_name”);
    if(! $result){
    $wpdb->print_error();
    // Or you can choose to show the last tried query.
    echo $wpdb->last_query;
    }
    global $wpdb;
    // Before running your query:
    $wpdb->show_errors = TRUE;
    $result = $wpdb->get_results("SELECT field_value FROM table_name");
    if(! $result){
    $wpdb->print_error();
    // Or you can choose to show the last tried query.
    echo $wpdb->last_query;
    }

    要启用此功能,请转到/public_html/wp-includes/wp-db.php并打开文件。搜索wpdb class并将$show_errors变量更改为true

    部署WordPress临时站点

    不熟悉“临时站点”一词?好吧,登台站点是您的实时站点的精确克隆。您可以在不公开的情况下在您的私有子域中托管暂存站点。这就是为什么暂存站点首先是执行代码的理想场所。

    登台站点充当开发平台,允许您实现希望在实时站点中推送的任何代码。由于登台环境对人和搜索引擎来说是不可见的,因此它是一个理想的平台,可以在将代码移至实时站点之前对其进行测试、调整和微调。

    识别PHP错误

    在PHP中,您可以保留错误日志,因为它带有自己的错误报告级别。使用phpinfo文件,您可以在脚本的早期轻松检测PHP错误。这个phpinfo文件能够输出有关PHP当前状态的信息。

    信息类型包括编译选项和扩展、版本、环境、操作系统版本、HTTP标头和许可证。为此,您可以配置php.ini文件以启用PHP错误报告并指定存储错误日志的位置。

    error_reporting = E_ALL | E_STRICT
    error_log = /var/log/php_error.log
    error_reporting = E_ALL | E_STRICT
    error_log = /var/log/php_error.log
    error_reporting = E_ALL | E_STRICT 
    error_log = /var/log/php_error.log

    但是,您可能会发现某些托管计划中禁用了此选项。在这种情况下,您可以部署PHP代码检查器,它会为您提供一个助手来检查代码中的缺陷。该工具将使您能够查找和修复语法错误,例如拼写错误的函数或丢失的分号。

    但是如果你的语法没有错误,你必须想出像Eclipse和PHPStorm这样的IDE。这些工具将破坏代码并让您检查您是否在做任何逻辑错误,例如忽略您之前存储在字符串中的变量。

    检查您网站的服务器错误日志

    您在浏览网站时可能遇到的常见网站错误之一是“内部服务器错误”。这种类型的错误可能是由于脚本超过了最大运行时间。PHP和WordPress都无法检测到此类编码错误。因此,对于此类错误,您不会收到任何PHP错误消息。

    检查您网站的服务器错误日志

    这是访问和查看您网站的错误日志的地方。常规日志检查可以帮助新手和高级开发人员找出问题。如果错误来自PHP代码或由于WordPress安装中的任何失误,您可以从错误日志中了解。

    您还可以致电您的托管服务提供商以了解错误日志的位置。他们还可以让您了解可能导致内部服务器错误的任何可能原因。

    启用SCRIPT_DEBUG

    为了最大限度地减少加载时间和带宽使用,WordPress默认使用CSS和JavaScript文件的缩小版本。使用缩小版本可能会隐藏您利用的脚本或插件中的错误。为了摆脱这个问题,WordPress还提供了一个常量,您可以将其添加到wp-config.php文件中,即 –

    define( ‘SCRIPT_DEBUG’, true );
    define( ‘SCRIPT_DEBUG’, true );
    define( ‘SCRIPT_DEBUG’, true );

    如果常量“ SCRIPT_DEBUG ”被定义为“true”,WordPress将自动加载CSS和JavaScript文件的非缩小版本,使所有插件使用它们的完整版本。

    小结

    调试WordPress不是在公园里散步,而是一项艰巨的任务,有时会变得乏味。但是,如果您遵循我们在这篇文章中列出的7个技巧,您可能会发现该过程更简单、更容易。

    事实上,我们总是倾向于依赖备份数据,而不是发现和修复现有问题。这是不可取的,因为如果不修复现有问题,您将在备份中再次遇到相同的问题或错误。

    因此,努力工作并找出WordPress网站的错误,按照上述技巧调试您的WordPress网站。有了它,您将掌握编码的窍门,还可以调试您的WordPress网站。修复错误后,您也可能会从WordPress网站获得更好的成果。

  • 如何在移动设备上预览WordPress网站

    如何在移动设备上预览WordPress网站

    无论您是为客户设计网站还是管理自己的WordPress网站,在公开任何更改之前了解它在移动设备上的外观和工作方式都很重要。

    您可能有一部手机可以用来查看您的网站。但是,如果您在笔记本电脑或台式机上工作,则不得不继续使用手机会很不方便。

    即使您的网站在您的手机上看起来不错,也有很多手机和平板电脑。仅仅因为它看起来不错,并不一定意味着它可以在各种不同的屏幕尺寸、浏览器和操作系统上完美运行。

    那么,您究竟如何在移动设备上预览WordPress网站呢?在本指南中,我们将介绍一些无需离开计算机即可在移动设备上测试您的网站的简单方法。

    为什么测试网站的移动版本如此重要?

    几年前,移动设备取代台式电脑成为浏览网页的主要方式。2021年第一季度,移动设备占全球网络流量的54.8%,去年手机和平板电脑占据了全球57.37%的市场份额

    在全球一些地区,移动设备的使用比桌面设备的使用要大得多。例如,在印度,移动设备拥有超过77%的市场份额。

    为了应对不断增长的移动互联网使用,谷歌已经开始惩罚那些不能在移动设备上提供良好用户体验的网站。

    在过去的几年中,已经有许多算法更新,旨在为移动用户提供更好的搜索体验。2015年的“ Mobilegeddon ”更新最为激烈,因为谷歌转向了移动优先模式。

    作为WordPress用户,选择移动响应主题是确保您的网站看起来不错并且在移动设备上运行良好的第一步。

    但是使用块编辑器,用户可以比以前更好地控制单个页面的格式。因此,即使您不是在开发主题或插件,每次添加新内容时,检查您的网站在移动设备上的外观也很重要。

    如果您使用Divi或Elementor等可视化拖放页面构建器来创建新页面布局或向您的网站添加内容,这一点尤其重要。

    方法一:使用内置的WordPress移动预览

    您始终可以在发布之前预览您的WordPress文章和页面。但是您是否注意到您还可以预览您的网站在移动设备上的外观?

    在WordPress中有两个地方可以访问移动预览:

    1. 来自文章和页面编辑器(并不总是准确的)
    2. 来自WordPress定制器

    WordPress文章/页面编辑器预览

    我们先来看看文章和页面编辑器中的移动预览是如何工作的。单击“发布”或“更新”按钮旁边的“预览”按钮。

    WordPress页面预览

    在弹出的下拉菜单中,选择“平板电脑”或“手机”,然后点击。

    这将立即调整页面编辑器的大小。但是,这是对内容外观的非常粗略和现成的估计,可能不太准确,尤其是在您使用自定义块或外部加载的CSS时。

    您可以在此示例中看到,编辑器只是调整了区块的大小以适应较小的屏幕并包装了文本。

    wordpress页面编辑器手机预览

    但是,如果您以较小的屏幕尺寸查看实时站点,您会发现它看起来根本不像这样。相反,响应式设计设置已开始重新排列块并调整文本大小。

    以下是它在较小的浏览器屏幕上的实际外观:

    小屏预览网站

    教训:不要相信文章和页面编辑器中的移动预览。公平地说,这是一个相当新的功能,并且仅在2020年年中发布的WordPress 5.5之后才出现。希望未来移动页面预览会有所改进。

    WordPress定制器预览

    那么WordPress定制器中的预览是否更好?让我们来看看。

    要访问WordPress移动预览版,请转到WordPress仪表盘中的外观 > 自定义

    这将显示您网站外观的预览,并允许您实时查看您对样式所做的更改如何更改其外观。您可以导航到站点上的任何页面并上下滚动,就像它是站点的实时版本一样。

    WordPress定制器预览

    要查看您的网站在不同屏幕尺寸上的显示效果,请使用自定义菜单底部的图标在设备视图之间切换。

    默认是桌面,中间是平板,右边是智能手机。

    WordPress定制器手机设备预览

    这是查看您网站的移动版本的最简单、最快捷的方式,因为它位于WordPress仪表盘中,只需单击几下即可访问

    但是,这基本上只是为您提供与调整浏览器窗口大小相同的视图。它并不能准确复制您的网站在每台移动设备上的显示和行为方式。

    它还只允许您以三种不同的屏幕宽度查看您的网站。移动设备具有许多不同的屏幕尺寸和分辨率。

    正如WordPress核心开发团队对该功能的原始提案所述,“默认情况下只有三个选项可用,而且它们是故意模棱两可的。其目的不是看起来像特定的设备,而是要了解网站在大致平板大小、纵向设备或大致手机大小的设备上可能是什么样子。”

    此外,WordPress定制器仅适用于支持它的主题。这意味着如果您使用的主题不适用于定制器,您将无法使用此方法在移动设备上预览您的网站。

    在WordPress页面构建器中查看移动预览

    如果您使用的是Divi、Elementor、Visual Composer等视觉页面构建器,它们中的大多数都带有自己的工具,用于预览您网站的移动版本并查看响应式设计在不同屏幕尺寸下的外观。

    请参阅您正在使用的构建器的用户指南,以准确了解如何在移动设备上编辑和预览您的WordPress网站。

    方法二:在Chrome中使用开发者视图

    一些浏览器具有内置的设备模拟器。Chrome是最受欢迎的浏览器之一,您可以使用它来预览您的网站在多种不同设备和不同分辨率下的外观。

    Chrome设备视图比WordPress移动预览要先进得多。除了能够在流行设备之间切换外,您还可以查看缩放或旋转屏幕时网站的外观,甚至可以模拟受限制的移动互联网连接。

    但是,虽然这为您提供了比使用内置WordPress移动预览更多的预览选项,但它仍然只是您网站外观的近似值。

    重要的是,您只能了解您的网站在Chrome中的外观。许多移动设备使用不同的浏览器,仅在Chrome中进行测试可能还不够。

    但这是测试您的网站在不同大小下的外观和工作方式的一种非常快速和简单的方法,它可以提醒您任何重大问题。

    要在“设备模式”下使用Chrome,请转到菜单中的查看 > 开发人员 > 开发人员工具。

    这会将您的浏览器屏幕分成两部分,一侧是您的网站,另一侧是代码和元素检查器。

    点击开发者工具顶部看起来像手机和平板电脑的小图标。这将调整浏览器视图的屏幕大小,以便您可以看到您的网站在较低分辨率下的外观。

    chrome开发者工具预览

    它还将在浏览器视图的顶部添加一个额外的工具栏。您可以使用它来更改它正在模拟的设备、手动设置屏幕分辨率、调整缩放、更改设备的旋转以及设置节流级别以查看页面加载时间受到的影响。

    chrome开发者预览设备选项

    方法三:使用第三方设备模拟器或测试服务

    对WordPress开发人员来说,彻底测试他们开发的网站、主题和插件非常重要。对于这种测试,使用设备模拟器或模拟器是必不可少的。

    模拟器复制设备的硬件和软件,而模拟器仅模拟操作系统和用户界面。

    设置和运行模拟器可能很复杂,而且它们往往运行缓慢。幸运的是,它们主要用于测试应用程序和游戏,而不是网站测试所必需的。

    以前,您必须在计算机上安装模拟器软件才能运行测试。现在更容易了,因为有几种服务可以在云中在线运行。

    这意味着您可以在几乎任何您想要的设备上运行任何浏览器来测试您的WordPress网站。

    您可以尝试的一些服务包括:

    • MobileMoxie – 使您能够在50多部手机上测试您的网站和移动搜索结果。您可以在有限的基础上免费使用该服务,或者以每月29美元的价格注册以进行无限制的实时测试。
    • LambdaTest – 一个基于云的测试平台,可在多个设备上的数千个浏览器和操作系统上进行站点预览,并带有用于实时调试的工具。免费计划包括每月60分钟的测试,付费计划每月15美元起。
    • BrowserStack – 这实际上不是一个模拟器,而是一项服务,可让您在云基础设施上的2,000多个浏览器和真实设备上测试您的网站。该服务每月收费39美元,但有免费试用。

    审核和测试您的网站以确保它针对移动设备进行了优化

    以上任何一种方法都可以让您查看您的网站在移动设备上的外观。但是,您可能需要再运行一些测试,看看您是否可以为移动用户做出任何其他改进。

    谷歌移动友好测试

    这个简单的在线工具将允许您输入任何URL,并让您知道它是否认为它“适合移动设备”。

    要使用该工具,只需转到https://search.google.com/test/mobile-friendly并输入您要测试的站点上的页面的URL。

    运气好的话,您会得到如下所示的响应:

    谷歌移动友好测试

    如您所见,这还可以让您方便地预览您的网站在移动设备上的外观。虽然这只是一个截图,但如果有任何重大问题,它可以提醒您。

    如果有任何加载问题或问题,您可以查看有关如何改进页面的完整详细信息和建议。

    注意:绿色的“页面适合移动设备”并不意味着您已获得 Google 的批准印章,并且您的网站完全针对移动设备进行了优化。它只是让您放心,没有任何重大问题意味着它对于移动用户来说难以辨认或无法使用。

    谷歌PageSpeed Insights

    PageSpeed Insights是Google的另一个免费工具,它会根据您的网站在速度方面的优化程度为您的网站打分(如何做到PageSpeed Insights测试满分)。

    Google PageSpeed Insights

    您可以在移动设备和桌面设备之间切换(您将获得每个分数),该工具将为您提供一个列表,列出您可以采取哪些措施来加快您的网站速度,以及每个项目节省的估计时间。

    MobiReady

    MobiReady

    MobiReady是一款免费工具,可在您的网站上运行移动就绪测试,并为您提供有关其运行情况的报告。

    您可以将您的网站与竞争对手进行基准比较,并获得分析和建议您可以采取哪些步骤来改进您的网站以供移动用户使用。

    如何使您的WordPress网站移动友好

    如果您使用的是WordPress,那么您应该先拥有一个适合移动设备的网站。WordPress拥有内置工具,可确保您的网站多年来在移动设备上运行良好。

    即便如此,您仍应采取一些步骤来确保您的WordPress网站为移动设备上的用户提供出色的体验。

    1. 使用响应式WordPress主题

    如果您使用的是定期更新的现代主题,那么您在这里可能没问题。

    但是,如果您使用的是几年前的主题,您应该检查它是否为移动响应而构建。

    如果您的网站没有重新格式化自身以在较小的尺寸下更易于阅读,请检查您使用的是最新版本的 WordPress 核心和您的主题。

    如果更新没有帮助,您应该考虑切换到更现代、更适合移动设备的WordPress主题。

    2. 确保你的插件也是响应式的

    大多数插件不会影响您的网站在移动设备上的显示方式。但是,如果他们向您的网站添加任何视觉元素,您需要检查它们是否在小屏幕尺寸上正常工作。

    同样,现代插件应该被设计为在移动设备上和在高分辨率下一样好。但这绝对是您在启动网站之前应该检查的内容。

    对于插件来说,功能尤为重要。例如,如果他们向您的网站添加表单或小工具,请确保它易于在移动设备上导航和使用。

    3.禁用移动设备上的弹出窗口

    弹出窗口对于台式机或笔记本电脑上的用户来说可能是一种痛苦,但它们会使您的网站对移动用户完全无法使用。

    interstitials 来源:https://developers.google.com/search/blog/2016/08/helping-users-easily-access-content-on

    最好为移动用户完全禁用它们,而不是触发填充整个屏幕的弹出窗口。

    谷歌实际上已经开始惩罚那些有侵入性弹出窗口掩盖底层内容的网站。所以最好完全避免它们。或者切换到只占用少量屏幕空间的横幅。

    4.确保图像和视频正确缩放并且可以调整大小

    媒体和媒体画廊在小屏幕上显示可能特别棘手。确保媒体元素在缩放时可见,或者如果它们不是必需的并且在移动设备上看起来不太好,请考虑禁用它们。

    对于视频和图像画廊,请确保您使用的画廊插件考虑了移动体验。例如,用户应该能够浏览图片库。

    如果图像或视频按比例缩小,则让用户可以轻松地以更大的尺寸查看它们。大多数移动用户都希望以全屏尺寸观看视频。

    5.优化网站速度和性能

    确保您的网站快速加载始终很重要。但是页面加载时间对于为移动用户提供良好的用户体验尤为重要。

    移动用户经常在旅途中并希望快速访问信息。几年前的一项谷歌研究发现,如果页面在3秒内没有加载, 53%的移动用户会放弃该页面。随着互联网速度和技术的不断进步,用户每年都变得越来越不耐烦。

    然而,平均网页在移动设备上的加载时间要长87.84%

    您可以做很多事情来加速您的WordPress网站和移动设备。您将从以下方面获得最大收益:

    1. 选择一个好的网络主机
    2. 优化图像
    3. 使用CDN

    小结

    您可以使用这些方法中的任何一种来测试您的WordPress网站在移动设备上的外观,但它们都不能准确地复制真实体验。

    在启动新网站或进行任何重大更改之前,请确保至少在一部真正的智能手机上检查您的网站。

    如果您已经利用了上面的一些预览方法,它应该看起来没问题。因此,只需确保您可以在网站上导航(确保检查按钮和可触摸区域),所有菜单都正确显示,并且任何表单或交互式小工具都可以正常工作。

    然后,您可以满怀信心地启动您的网站,确保为桌面和移动用户提供出色的用户体验。

  • 使用PHP中的组件实现GraphQL服务器

    使用PHP中的组件实现GraphQL服务器

    GraphQL是一种用于API的查询语言,它使客户能够准确地询问他们需要的数据并准确地接收这些数据,仅此而已。这样,单个查询就可以获取渲染组件所需的所有数据。

    (相比之下,一个REST API必须触发多次往返以从不同端点的多个资源中获取数据,这可能会变得非常慢,尤其是在移动设备上。)

    尽管GraphQL(意为 “Graph Query Language”)使用图数据模型来表示数据,但GraphQL服务器不一定需要使用图作为数据结构来解析查询,而是可以使用任何需要的数据结构。该图只是一个心理模型,而不是实际实现。

    GraphQL项目在其网站graphql.org上声明了这一点:

    Graph是对许多现实世界现象进行建模的强大工具,因为它们类似于我们的自然心理模​​型和对潜在过程的口头描述。使用GraphQL,您可以通过定义模式将业务领域建模为图形;在您的架构中,您定义不同类型的节点以及它们如何相互连接/关联。在客户端,这会创建一个类似于面向对象编程的模式:引用其他类型的类型。在服务器上,由于GraphQL只定义了接口,你可以自由地将它与任何后端(新的或旧的!)一起使用

    这是个好消息,因为处理图或树(它们是图的子集)并非易事,并且可能导致解决查询的指数或对数时间复杂度(即解决查询所需的时间可能会增加几个订单)查询的每个新输入的数量级)。

    在本文中,我们将描述PoP在PHP GraphQL中的GraphQL服务器的架构设计,它使用组件作为数据结构而不是图。该服务器的名字来源于PoP,它是在PHP中构建组件的库,它是基于该库的。

    本文分为5个部分,解释:

    1. 什么是组件
    2. PoP的工作原理
    3. PoP中如何定义组件
    4. 组件如何自然地适用于GraphQL
    5. 使用组件解决GraphQL查询的性能

    1.什么是组件

    每个网页的布局都可以使用组件来表示。组件只是一组代码(例如HTML、JavaScript和CSS)组合在一起以创建一个自治实体,该实体可以包装其他组件以创建更复杂的结构,并且自身也可以被其他组件包装。每个组件都有一个用途,可以是非常基本的东西,例如链接或按钮,也可以是非常复杂的东西,例如轮播或拖放图像上传器。

    通过组件构建站点类似于玩乐。例如,在下图中的网页中,简单的组件(链接、按钮、头像)被组合成更复杂的结构(小工具、部分、侧边栏、菜单)一直到顶部,直到我们获得网页:

    所有东西都是一个模块

    页面是一个wrapping组件的组件,如方框所示

    组件可以在客户端(例如JS库Vue和React,或CSS组件库Bootstrap和Material-UI)和服务器端以任何语言实现。

    2. PoP的工作原理

    PoP描述了一种基于服务器端组件模型的架构,并通过组件模型库在PHP中实现。

    在以下部分中,术语“组件”和“模块”可互换使用。

    组件层次结构

    所有模块相互wrapping的关系,从最顶层的模块一直到最后一层,称为组件层次结构。这种关系可以通过服务器端的关联数组(key=>property)来表示,其中每个模块将其名称声明为关键属性,并将其内部模块声明为属性"modules"

    PHP数组中的数据也可以直接在客户端使用,编码为JSON对象。

    组件层次结构如下所示:

    $componentHierarchy = [
    ‘module-level0’ => [
    “modules” => [
    ‘module-level1’ => [
    “modules” => [
    ‘module-level11’ => [
    “modules” => []
    ],
    ‘module-level12’ => [
    “modules” => [
    ‘module-level121’ => [
    “modules” => []
    ]
    ]
    ]
    ]
    ],
    ‘module-level2’ => [
    “modules” => [
    ‘module-level21’ => [
    “modules” => []
    ]
    ]
    ]
    ]
    ]
    ]
    $componentHierarchy = [
    ‘module-level0’ => [
    “modules” => [
    ‘module-level1’ => [
    “modules” => [
    ‘module-level11’ => [
    “modules” => […]
    ],
    ‘module-level12’ => [
    “modules” => [
    ‘module-level121’ => [
    “modules” => […]
    ]
    ]
    ]
    ]
    ],
    ‘module-level2’ => [
    “modules” => [
    ‘module-level21’ => [
    “modules” => […]
    ]
    ]
    ]
    ]
    ]
    ]
    $componentHierarchy = [
      'module-level0' => [
        "modules" => [
          'module-level1' => [
            "modules" => [
              'module-level11' => [
                "modules" => [...]
              ],
              'module-level12' => [
                "modules" => [
                  'module-level121' => [
                    "modules" => [...]
                  ]
                ]
              ]
            ]
          ],
          'module-level2' => [
            "modules" => [
              'module-level21' => [
                "modules" => [...]
              ]
            ]
          ]
        ]
      ]
    ]

     

    模块之间的关系以严格的自上而下的方式定义:一个模块wrap了其他模块并且知道它们是谁,但它不知道也不关心哪些模块wraps了他。

    例如,在上面的组件层次结构中,模块'module-level1'知道它wrap了模块'module-level11''module-level12',并且,它也知道它wrap了'module-level121';但是模块'module-level11'不关心谁在wrap他,因此不知道'module-level1'.

    有了基于组件的结构,我们添加了每个模块所需的实际信息,这些信息分为设置(例如配置值和其他属性)和数据(例如查询的数据库对象的ID和其他属性),并且相应地放在条目modulesettingsmoduledata

    $componentHierarchyData = [
    “modulesettings” => [
    ‘module-level0’ => [
    “configuration” => [],
    ,
    “modules” => [
    ‘module-level1’ => [
    “configuration” => [],
    ,
    “modules” => [
    ‘module-level11’ => [
    …children…
    ],
    ‘module-level12’ => [
    “configuration” => [],
    ,
    “modules” => [
    ‘module-level121’ => [
    …children…
    ]
    ]
    ]
    ]
    ],
    ‘module-level2’ => [
    “configuration” => [],
    ,
    “modules” => [
    ‘module-level21’ => [
    …children…
    ]
    ]
    ]
    ]
    ]
    ],
    “moduledata” => [
    ‘module-level0’ => [
    “dbobjectids” => [],
    ,
    “modules” => [
    ‘module-level1’ => [
    “dbobjectids” => [],
    ,
    “modules” => [
    ‘module-level11’ => [
    …children…
    ],
    ‘module-level12’ => [
    “dbobjectids” => [],
    ,
    “modules” => [
    ‘module-level121’ => [
    …children…
    ]
    ]
    ]
    ]
    ],
    ‘module-level2’ => [
    “dbobjectids” => [],
    ,
    “modules” => [
    ‘module-level21’ => [
    …children…
    ]
    ]
    ]
    ]
    ]
    ]
    ]
    $componentHierarchyData = [
    “modulesettings” => [
    ‘module-level0’ => [
    “configuration” => […],
    …,
    “modules” => [
    ‘module-level1’ => [
    “configuration” => […],
    …,
    “modules” => [
    ‘module-level11’ => [
    …children…
    ],
    ‘module-level12’ => [
    “configuration” => […],
    …,
    “modules” => [
    ‘module-level121’ => [
    …children…
    ]
    ]
    ]
    ]
    ],
    ‘module-level2’ => [
    “configuration” => […],
    …,
    “modules” => [
    ‘module-level21’ => [
    …children…
    ]
    ]
    ]
    ]
    ]
    ],
    “moduledata” => [
    ‘module-level0’ => [
    “dbobjectids” => […],
    …,
    “modules” => [
    ‘module-level1’ => [
    “dbobjectids” => […],
    …,
    “modules” => [
    ‘module-level11’ => [
    …children…
    ],
    ‘module-level12’ => [
    “dbobjectids” => […],
    …,
    “modules” => [
    ‘module-level121’ => [
    …children…
    ]
    ]
    ]
    ]
    ],
    ‘module-level2’ => [
    “dbobjectids” => […],
    …,
    “modules” => [
    ‘module-level21’ => [
    …children…
    ]
    ]
    ]
    ]
    ]
    ]
    ]
    $componentHierarchyData = [
      "modulesettings" => [
        'module-level0' => [
          "configuration" => [...],
          ...,
          "modules" => [
            'module-level1' => [
              "configuration" => [...],
              ...,
              "modules" => [
                'module-level11' => [
                  ...children...
                ],
                'module-level12' => [
                  "configuration" => [...],
                  ...,
                  "modules" => [
                    'module-level121' => [
                      ...children...
                    ]
                  ]
                ]
              ]
            ],
            'module-level2' => [
              "configuration" => [...],
              ...,
              "modules" => [
                'module-level21' => [
                  ...children...
                ]
              ]
            ]
          ]
        ]
      ],
      "moduledata" => [
        'module-level0' => [
          "dbobjectids" => [...],
          ...,
          "modules" => [
            'module-level1' => [
              "dbobjectids" => [...],
              ...,
              "modules" => [
                'module-level11' => [
                  ...children...
                ],
                'module-level12' => [
                  "dbobjectids" => [...],
                  ...,
                  "modules" => [
                    'module-level121' => [
                      ...children...
                    ]
                  ]
                ]
              ]
            ],
            'module-level2' => [
              "dbobjectids" => [...],
              ...,
              "modules" => [
                'module-level21' => [
                  ...children...
                ]
              ]
            ]
          ]
        ]
      ]
    ]

    接下来,将数据库对象数据添加到组件层次结构中。此信息不是放在每个模块下,而是放在名为databases的共享部分下,以避免在2个或更多不同模块从数据库中获取相同对象时重复信息。

    此外,该库以关系的方式表示数据库对象数据,以避免当两个或多个不同的数据库对象与一个共同的对象相关时(例如两个具有相同作者的文章),信息重复。

    换句话说,数据库对象数据是标准化的。该结构是一个字典,首先组织在每个对象类型下,然后是对象ID,我们可以从中获取对象属性:

    $componentHierarchyData = [
    “databases” => [
    “dbobject_type” => [
    “dbobject_id” => [
    “property” => …,
    ],
    ],
    ]
    ]
    $componentHierarchyData = [

    “databases” => [
    “dbobject_type” => [
    “dbobject_id” => [
    “property” => …,

    ],

    ],

    ]
    ]
    $componentHierarchyData = [
      ...
      "databases" => [
        "dbobject_type" => [
          "dbobject_id" => [
            "property" => ...,
            ...
          ],
          ...
        ],
        ...
      ]
    ]

    例如,下面的对象包含一个带有两个模块的组件层次结构"page"=> "post-feed",其中模块"post-feed"获取博客文章。请注意以下事项:

    • 每个模块都知道哪些是其从属性dbobjectids(ID49博客文章)中查询的对象
    • 每个模块从属性中知道其查询对象的对象类型dbkeys(每个文章的数据都在下面找到"posts",文章的作者数据,对应于在文章属性下给出的ID的作者,在下面"author"找到"users"):
    • 因为数据库对象数据是关系型的,所以属性"author"包含作者对象的ID,而不是直接打印作者数据
    $componentHierarchyData = [

    <

  • 如何创建WordPress网站浮动固定栏(页眉)

    如何创建WordPress网站浮动固定栏(页眉)

    导航是具有出色设计的优质WordPress网站的重要方面。因此,值得花一些时间来考虑您网站的访问者如何通过您的导航与您的页面进行交互。一种方法是使用浮动固定栏(固定页眉)。

    这是您网站的header部分在用户滚动时保持在屏幕顶部的位置。这提供了无数的好处,但主要优点之一是您的导航元素保持在用户的视线范围内,无论它们在页面上的什么位置。仅出于这个原因,浮动固定栏是一个受欢迎的用户界面 (UI) 元素。

    在本教程中,我们将向您展示如何在WordPress中创建浮动固定栏。它将涵盖很多方面,例如网络上的示例、可以帮助您的WordPress插件以及如何开发自己的浮动固定栏的指南。不过,首先让我们更详细地讨论一下什么是浮动固定栏。

    1. 什么是浮动固定栏
    2. 网络上的浮动固定栏示例
    3. 为什么使用浮动固定栏
    4. 浮动固定栏插件推荐
    5. 如何在WordPress中创建浮动固定栏
    6. 浮动固定栏使用技巧

    什么是浮动固定栏

    Kotaku网站的浮动固定栏

    Kotaku网站的浮动固定栏

    您网站的header页眉部分有点像您网站的信息台。这将是大多数用户首先会发现的东西,并且总是会在他们检查以找出一些关键信息并执行某些操作的地方:

    • 例如,您的徽标或网站名称将出现在此处,作为用户的基础。在大多数情况下,他们将能够通过单击徽标返回主页。
    • 如果您在网站上运行用户帐户,header通常会提供一个链接以登录这些帐户和个人资料页面。
    • 这里可能有搜索功能,特别是如果您有一个大型网站,在不同区域有很多内容。
    • 当然,您网站的导航也是页眉不可分割的一部分。

    总体而言,您的header是用户的接触点。您会发现它通常是F形阅读模式的“条形图” ,因此它在直观的层面上引起了用户的注意。

    您可能已经知道了什么是浮动固定栏,即使在直观意义上也是如此。当您滚动时,它是您网站的页眉部分“固定”到屏幕顶部的位置。与在滚动时保持原位并消失的静态页眉相比,固定页眉是始终可见的元素。

    虽然浮动固定栏的典型方法是将其静态版本固定到屏幕顶部,但有几种不同的方法可以使其更可用、屏幕效率更高和动态。接下来,我们将看一些现实世界的例子。

    网络上的浮动固定栏示例

    您会在整个网络上找到浮动固定栏,最好检查一些以了解您可以实现的范围。周围最基本的例子之一是来自Hammerhead。该站点使用“弹出菜单”和浮动固定栏,并且很简单:它致力于在其静态布局中固定在页面顶部:

    Hammerhead网站上的浮动固定栏

    Hammerhead网站上的浮动固定栏

    另一个简单的实现来自Kin。这使用了一个典型的浮动固定栏,但这次有一些很酷的设计元素。

    您会注意到对比度会根据您滚动浏览的网站部分而变化,并且还有一些不错的过渡效果:

    Kin网站上的浮动固定栏

    Kin网站上的浮动固定栏

    这一次,当您向下滚动页面时,您会看到页眉消失。但是,当您向上滚动时,它会重新出现——您可以将其称为“部分持久页眉”。

    这里的前提是向下滚动意味着您将时间投入到页面本身,因此可能不需要导航、登录页面或前往其他地方。但是,在您向上滚动时,您更有可能想要前往网站上的另一个页面。在这里,将显示浮动固定栏以节省时间。

    正是这些小小的用户体验 (UX) 触动使网站访问者想要返回。对于您自己的固定栏设计,您需要考虑如何制作一个专注于访问者需求的UX和UI。

    为什么你应该为你的网站使用浮动固定栏

    许多网站都使用浮动固定栏,并且有很多充分的理由说明这种情况。它们可能是您整体网站体验的关键部分,并且对您的用户体验和用户界面有很大影响。

    鉴于您将包含在header中的元素是用户始终想要访问的元素,因此始终显示它们是有意义的。对于小屏幕设备和格式尤其如此。

    虽然当视口空间非常宝贵时,拥有一个“永远在线”的页眉似乎违反直觉,但这只是一个小小的牺牲。真正的好处是减少了移动用户滚动的理由——这在较小的设备上是必需的。如果您无需滚动即可提供站点导航,则用户可以更轻松地在您的站点中移动。

    浮动固定栏的优点和缺点

    我们介绍了浮动固定栏的一些优点,所以让我们快速总结一下:

    • 您可以提供用户可以随时访问的导航,这有助于保持您网站上的自然阅读模式。
    • 您可以使header适应不同的需求,例如对比、配色方案,甚至是用户意图。
    • 有机会为用户提供价值,无论是桌面还是小屏幕。

    但是,浮动固定栏并不是增加用户体验的灵丹妙药,使用它们也有一些缺点:

    • 我们简要介绍了这一点,但对于各种尺寸的屏幕,您需要为header分配空间。
    • 固定页眉自然会从您的其余内容中脱颖而出,因为它自己的元素会将视线从页面主体上移开。
    • 有更多的开发工作涉及到一个好的固定header,因为您需要实现它,确保它在不同的浏览器中工作,并在较小的屏幕上检查它是否存在错误。

    但是,如果您考虑您的设计选择、用户需求和站点目标,您可以减轻或消除所有这些缺点,同时保留优点。一种方法是通过WordPress插件。

    浮动固定栏插件推荐

    在接下来的几节中,我们将展示一些领先的 WordPress浮动固定栏插件。稍后,我们将讨论这种解决方案是否适合您。无论如何,插件可以帮助您实现功能而无需代码,如果您的主题不包含它,这很有价值。

    更重要的是,您可以通过插件利用专家的设计和开发经验。开发人员将为您做出一些更重要的技术选择,并将其包装在一个直观且易于使用的UI中。

    1. Sticky Menu & Sticky Header

    Webfactory的Sticky Menu & Sticky Header插件是一个不错的首选,因为它具有丰富的功能、有用的灵活性和预算友好的价格。

    Sticky Menu & Sticky Header插件

    Sticky Menu & Sticky Header插件

    这里的吸引力在于,您可以让网站上的任何元素都贴在屏幕上。这可能在很多方面都有帮助,但这意味着实现固定页眉是轻而易举的事。

    该插件还附带了一系列强大的选项来帮助您实现顶部固定栏:

    • 您可以设置所需的“顶部”定位级别。这意味着您可以在页眉上方的区域添加空间以适应您的设计目标。
    • 还有其他定位选项,例如使用z-index CSS属性来设计您的网站“从前到后”。
    • 您只能在您选择的页面上启用浮动固定栏,如果您有登录页面或其他不合适的内容,这可能会很有用。

    Sticky Menu & Sticky Header还包括调试模式,可帮助您修复任何“非固定”元素。动态模式还有助于解决响应式设计的问题。

    最好的消息是Sticky Menu & Sticky Header可以免费下载和使用。更重要的是,还有一个高级版本可以带走更多您需要的技术知识。

    使用免费版本的插件,您需要知道元素的选择器才能在选项中指定它。然而,高级版(每年49-199美元)提供了一个视觉元素选择器来绕过这一点。

    2. Options for Twenty Twenty-One

    虽然我们不会为大多数以客户为中心的网站推荐WordPress默认主题,但它们确实有足够的资源用于博客和类似类型的网站。

    在我们看来,Twenty Twenty-One是突出的默认主题之一,但缺乏浮动固定栏功能。如果您想添加此功能,Options for Twenty Twenty-One插件的选项可以满足您的需求。

    Options for Twenty Twenty-One

    Options for Twenty Twenty-One

    此版本的插件是众多插件之一。每个最近的默认主题都有一个版本,但还没有一个 Twenty Twenty-Two的版本。无论如何,插件的核心功能提供了很多额外的功能:

    • 有一个完整的站点编辑 (FSE)工具,已准备好全面推出。
    • 您可以更改正文的字体大小、删除超链接下划线和其他简单的自定义。
    • 您可以使用容器和元素的最大宽度,而无需代码。

    您的导航、内容、页脚和页眉还有许多其他选项。对于后者,您可以将其隐藏,使其全宽,添加背景图像和颜色以及许多其他更改。

    虽然核心插件是免费的,但您需要高级升级(25-50美元)才能访问浮动固定栏选项。这使您可以从WordPress定制器调整移动和桌面header的设置:

    WordPress定制器显示固定页眉选项

    WordPress定制器显示固定页眉选项

    给定这个名字,你不应该期望这个插件可以使用除Twenty Twenty-One以外的任何其他主题(或者你选择的任何“风格”。)但是,如果你确实使用这个默认主题并且不想编码,它将是帮助您向网站添加固定页眉的理想选择。

    3. 浮动通知栏、滚动固定菜单和任何主题的固定页眉 – myStickymenu

    这是一个将牌摆在桌面上的插件。Premio的myStickymenu插件几乎提供了您想要包含在您自己的固定页眉中的所有内容,并包含大量功能。

    myStickymenu插件

    myStickymenu插件

    它在WordPress插件目录上的正面评价数量惊人——799条五星级评价,平均为4.9。部分原因在于您可以使用的综合功能集:

    • 它提供了使用灵活性。例如,您可以创建欢迎栏以及固定菜单和header。
    • 该插件会适应您网站的响应速度。这意味着您不再需要使用代码实现任何功能。
    • 实际上,该插件不需要您知道如何编码即可充分使用它。
    • myStickymenu插件与许多领先的页面构建器插件兼容,例如ElementorBeaver Builder原生区块编辑器Divi Builder等等。

    您还可以使用许多自定义选项来使您的固定栏按您的意愿工作。例如,您可以选择制作部分持久的页眉、更改背景颜色、排版选择等简单方面。

    此外,由于您可以通过不同的方式呈现固定页眉(例如菜单和欢迎栏选项),您可以选择它们在您的网站上的显示方式和位置。

    尽管 myStickymenu的免费版本可能足以满足您的需求,但还有一个高级版本(每年25-99美元)。这提供了更多方法来禁用您在特定条件下的固定页眉、倒数计时器、添加多个欢迎栏的能力,以及更多的自定义选项。

    如何在WordPress中创建固定栏

    在本教程的其余部分,我们将向您展示如何在WordPress中创建浮动固定栏。您可以在此处采用几种方法,我们将介绍这两种方法。但是,我们的第一步将帮助您做出决定。

    从那里,您将使用您喜欢的方法处理您自己的置顶header,然后应用我们的一些技巧,以使您的方法在未来更加高效和可用。

    1.决定如何创建固定页眉

    WordPress对各种用户如此灵活的一个原因是其插件生态系统和开源可扩展性。因此,您可以选择现成的解决方案或“自己动手”。

    您的首要任务是决定是否要使用插件或挖掘代码来实现您的固定页眉。让我们分解两个解决方案:

    • 插件。这将是WordPress认可的方法,尤其是在您没有技术知识的情况下。它将提供灵活性,但您受开发人员认为重要的内容以及他们的编码能力的支配。
    • 编码。如果您有一个清晰的愿景,您可能希望为您的网站编写一个固定页眉。当然,您需要技术专长来完成这项工作(主要是CSS),但结果正是您想要的。但是,您将有更多潜在的维护需要执行,其成功将取决于您自己的编码能力。

    我们会说,对于大多数WordPress用户来说,插件将是创建固定页眉的理想解决方案。它可以很好地与平台配合使用,并且如果您遇到问题更容易进行故障排除。但是,在以后的步骤中,我们将介绍编码解决方案以及插件选项。

    2. 选择是修改当前主题还是选择专用主题

    您要考虑的下一个方面是您是否修改当前主题,或者选择一个已经在其功能集中具有固定页眉功能的主题。如果您的主题没有处理浮动固定栏的功能,这将很重要。

    许多主题和页面构建器插件将包括一个浮动固定栏选项,因为它的好处并为您提供设计灵活性。您会发现一些较大的通用主题和插件将其作为标准提供,例如Elementor、Astra、Divi、Avada和无数其他。

    Elementor中的固定栏选项

    Elementor中的固定栏选项

    要做出此决定,您需要考虑有关当前主题和网站的一些事项:

    • 您的网站看起来是否已经如您所愿,还是需要刷新?
    • 您当前的主题是否易于在后台自定义?开发人员文档应该告诉您这一点。
    • 您想要一个复杂的首选固定页眉实现还是更简单的实现?

    根据您在此处给出的答案,您将选择其中一个。如果您需要一个新主题,您不妨选择一个提供固定页眉实现的主题。但是,如果您想保留当前主题,并且它还没有浮动固定栏功能,您需要卷起袖子并按照以下子步骤之一进行操作。

    2a. 使用具有特定主题的插件

    如果您没有开发经验,我们建议您选择一个插件来为您的网站添加置顶功能。您需要考虑、构建和维护的变量太多。相比之下,插件已经有一个代码库来支持这些元素,因此它将为大多数情况提供几乎理想的选择。

    对于本教程的这一部分,我们将使用myStickymenu插件,因为它为大多数用例提供了全面而丰富的功能集。但是,对于您将使用的大多数插件,一般用法是相同的。

    安装并激活插件后,您需要前往主题选项所在的任何位置。对于某些插件,这将在WordPress定制器中;对于其他人,一个专门的管理面板。在这里,您将在WordPress中的myStickymenu > Dashboard中使用自定义管理面板:

    WordPress中的myStickymenu管理面板

    WordPress中的myStickymenu管理面板

    但是,默认屏幕显示了欢迎栏的设置,对于本教程,我们不需要。因此,单击切换按钮以关闭该栏,然后单击进入Sticky menu settings屏幕:

    固定菜单设置屏幕

    固定菜单设置屏幕

    虽然这里有很多选项,但您只需要Sticky Class面板。将sticky header切换为“On”后,在与Other Class or ID下拉菜单一致的相关字段中输入header的相关HTML标记:

    更改myStickymenu插件中的HTML选择器标记

    更改myStickymenu插件中的HTML选择器标记

    保存更改后,这将应用于您的站点。从那里,您可以查看一些样式功能。例如,您设置淡入淡出或滑动过渡效果、设置z-index、使用不透明度、颜色和过渡时间 – 以及许多其他选项。

    2b. 编写代码来创建您的固定页眉

    几乎不用说,这部分是为那些有开发经验的人准备的。稍后您会看到代码本身非常简单,令人难以置信。但是,考虑到创建自定义置顶页面(固定栏)需要额外的工作、维护和一般维护,您还需要利用其他方面的经验。

    但是,在开始之前,您需要以下内容:

    • 一个不错的代码编辑器,尽管在这种情况下(并且取决于实现)您可以使用默认操作系统 (OS) 文本编辑器。
    • 您需要访问您应该备份的站点文件,然后下载到本地WordPress开发环境。

    值得重申的是,您不想处理实时站点的文件。相反,在暂存环境或本地设置中工作,然后在测试完后将文件上传回您的实时服务器。

    您还需要为此使用子主题,因为您正在对父主题进行自定义更改。这可以帮助您组织代码,并确保如果主题收到更新,任何更改(字面意思)都会保留。

    使用代码实现固定页眉:找到正确的header标签

    考虑到这一切,你就可以开始了。第一项工作是为您的导航发现正确的HTML标签。这里的结果将取决于您使用的主题,尽管在大多数情况下header标签是一个安全的选择。找出答案的最佳方法是使用浏览器的开发工具并选择header:

    显示站点和标签的检查元素工具

    显示站点和标签的检查元素工具

    您可能会发现它不像一个标签那么简单,因此我们建议您查看主题的文档(或直接与开发人员交谈),以便在遇到困难时找出您需要的标签。

    使用代码实现固定页眉:使用样式表

    接下来,您应该在目录中为您的子主题创建或打开一个style.css文件。这会将您的CSS附加到核心安装的CSS中,并在标签重复的地方覆盖它。

    在此文件中,添加注册子主题所需的典型元数据:

    使用Onivim2创建子主题

    使用Onivim2创建子主题

    接下来,您需要添加代码以启用固定页眉。这将需要一些CSS继承的知识,并且取决于您使用的主题,这可能是一种令人愤怒的体验。

    例如,Twenty Twenty-Two主题使用两个header标签,并且很难找到正确的CSS组合以使您的代码在正确的元素上工作。即使使用块编辑器中的模板类对话框也是如此(如果您使用FSE功能):

    header标签

    Brave Inspector显示了Twenty Twenty-Two主题的多个header标签

    无论如何,您需要的代码将是相同的:

    Akhil Arjun为此提供了两行解决方案:

    header {
    position: sticky; top: 0;
    }
    header {
    position: sticky; top: 0;
    }
    header {
    position: sticky; top: 0;
    }
    

    但是,您可能还需要考虑使用position: fixed属性,它使用更多的代码行:

    header {
    position: fixed;
    z-index: 99;
    right: 0;
    left: 0;
    }
    header {
    position: fixed;
    z-index: 99;
    right: 0;
    left: 0;
    }
    header {
    position: fixed;
    z-index: 99;
    right: 0;
    left: 0; 
    }
    

    这使用z-index将header带到堆栈的前面,然后使用固定属性使其停留在屏幕顶部。

    请注意,您可能需要在此处添加一个新类,以便应用固定页眉。无论哪种方式,这都应该实现固定页眉的骨骼。一旦确定了这一点,您将需要进一步设计设计以使其与您网站的其他部分一起使用。

    使您的置顶页眉更有效的提示

    一旦有了创建固定页眉的方法,您就会想弄清楚如何完善它。有很多方法可以改进基本设计并确保它满足您网站访问者的需求。

    您自己的固定页眉的一个很好的类比是确保它就像一个优秀的体育裁判。大多数时候,你不会知道他们在那里。但是,当球员或教练需要他们时,他们会打电话并出现在场。

    你的固定页眉也应该做同样的事情——留在阴影中,或者在用户需要它之前不在意。你可以通过一些经验法则来实现这一点,如果设计需要,你可以选择打破这些经验法则(一如既往):

    • 保持紧凑。屏幕空间将非常宝贵,因此请尽量保持header较小。您可以实施一个解决方案,其中您的header以动态方式缩放,基于它所展示的站点区域。
    • 在小屏幕上使用隐藏的header和菜单。通过扩展,您可以选择隐藏菜单,就像之前的Hammerhead示例一样。这有助于保持header紧凑,并与下一点联系起来。
    • 确保你不会分心。屏幕上的元素数量越多,它们争夺的注意力就越多。如果固定页眉不需要显示元素,请将其删除 – 您的正文内容会喜欢它,您的指标也会喜欢它。
    • 提供对比。这是号召性用语 (CTA) 剧本中的一个技巧。如果您对整个固定页眉及其各个元素使用对比度,您可以将注意力吸引到您需要的地方 – 或将其推到其他地方。

    总体而言,您的固定页眉只会做您需要做的事情,仅此而已。有时您需要尽量减少内容,有时您会使用链接、徽标和注册表单将其打包。无论哪种方式,如果您牢记UX和UI,您将始终做出以用户为中心的决定。

    小结

    网站的可用性和用户体验非常重要,以至于它们应该是您在设计和构建它时确定的第一、第二和第三件事。您网站的导航只是其中的一个方面,但您需要找出让用户在您的网站上四处走动而不大惊小怪的最佳方式。固定页眉是实现它的好方法。

    如果您将header固定在屏幕顶部,则用户将始终可以使用导航元素。这对于需要滚动来移动正文内容但无论外形尺寸如何都能提供好处的设备特别有用。如果您是WordPress用户,您可以选择插件或代码来实现固定页眉。但是,您可能会在自己喜欢的主题中发现该功能,在这种情况下,您可以使用它并降低灵活性。

  • 面向WordPress用户的MAMP Pro终极指南

    面向WordPress用户的MAMP Pro终极指南

    如果您作为WordPress开发人员的时间足够长,您可能会看到在本地创建网站的价值。您可以在开发过程中避免昂贵的托管费用,特别是如果您计划一次开发多个站点。使用MAMP Pro在本地进行开发是构建网站的一种流行方式——允许私人环境在向世界展示之前调整您的设计和功能。托管服务提供商也意识到了这一趋势。

    在本文中,我们将告诉您为什么使用MAMP Pro(而不是其免费版本)可以让您在使用本地环境时更轻松。我们将引导您了解MAMP Pro的所有功能,并向您展示如何使用它。

    什么是MAMP Pro?

    MAMP是一个解决方案堆栈或软件堆栈,包括MacOS、Apache、MySQL和PHP,用于创建用于构建WordPress网站的完整软件平台。最初,MAMP仅支持Mac OS(因此MAMP中的第一个“M”),但它现在可用于Mac OS和Windows操作系统(Windows用户具有一些有限的功能)。它最广泛用于开发WordPress网站,但也有能力构建其他CMS网站,例如Drupal和Joomla。

    MAMP已经使用了十多年,允许开发人员在他们的本地机器上构建网站。随着MAMP Pro 6的发布,他们改进了MAMP Pro的功能,让用户更有动力去购买99美元的升级版。

    MAMP Pro

    MAMP和MAMP Pro有什么区别?

    放下手,这是功能。使用MAMP,您可以在Apache或Nginx上创建本地主机,这很棒,但您必须手动完成设置的每一步——从安装WordPress到编辑配置文件。使用MAMP Pro,只需单击几下即可完成。您无需在PHPmyAdmin中创建数据库,或手动安装WordPress文件。此外,您将获得专业版的众多功能,这些功能可能会说服您进行升级。

    MAMP Pro的特点

    MAMP Pro提供了一个令人难以置信的免费版本所没有的功能列表。克隆主机、改进的WordPress支持、快照和蓝图是最新版本提供的众多令人惊叹的新功能之一。此外,还包括代码编辑功能、用于实时推送本地站点的FTP、电子邮件设置、云存储和站点迁移。他们甚至提供MAMP Viewer应用程序,允许您在iOS或Android移动设备上测试本地站点。让我们深入了解这些功能,向您展示其99美元套餐的强大功能。

    多次安装WordPress

    使用专业版,您可以发布任意数量的文章。每个主机都可以根据您的喜好进行配置,使用不同的网络服务器。例如,您可以在Apache上安装一个WordPress,在Nginx上安装另一个。由于能够运行多个版本的PHP,您可以在7.4上拥有一个站点,在8.0上再拥有一个站点。

    SSL证书

    在MAMP的免费版本中,如果不编辑配置文件,就不可能拥有SSL证书。如果您在这类事情上有经验,那很好,但初学者可能会认为这令人生畏。幸运的是,MAMP Pro只需勾选复选框即可创建SSL证书。此外,Web浏览器也不会犹豫。您不必担心收到任何SSL错误警告。在完成设置新主机的步骤时,我们将更深入地了解如何安装SSL证书。

    SSL证书

    站点蓝图

    与某些托管服务提供商提供的服务类似,蓝图允许您以您喜欢的方式设置WordPress安装,然后在其他构建中重用它。这使您可以使用专门的设置过程节省在新站点上的时间。主题、插件和定制器设置都已保存,允许您在创建的每个新网站上跳过这些详细信息。

    云储存

    如果您不想将文件存储在本地计算机上,则不必这样做。MAMP Pro允许您通过Dropbox或OneDrive将文件存储在云中。您可以将一台或所有主机存储在云中。这是防止您意外删除项目文件的好方法,并允许您在不同计算机上的站点上工作。设置云功能是一个简单的过程。

    导航到Cloud选项卡。使用云提供商下拉菜单,选择您的storage选项。将打开一个新的浏览器选项卡,要求您登录。链接后,选择是使用encryption还是在云活动期间prevent sleep接下来,单击choose按钮告诉MAMP将云日志保存在哪里。最后,点击save按钮。

    MAMP Pro Cloud

    带有MailHog的邮件服务器

    MailHog是一个很棒的工具,它允许PHP mail()电子邮件测试。将自动为您分配SMTP端口,以免发生端口冲突。您还可以使用他们的GUI Web界面查看您的电子邮件日志,以验证电子邮件是否被正确发送和接收。这种方便的设置将使您能够在启动站点之前解决可能出现的任何问题。

    要设置电子邮件测试,请单击MailHog选项卡。接下来,勾选在GroupStart中包含MailHog server复选框。选择是否permanently store emails,以及simulate errors。最后,save您的设置。

    MailHog设置进程

    内置代码编辑器

    如果您需要对文件进行更改,则无需离开界面。您可以使用MAMP Pro的内置代码编辑功能即时更改代码。此外,您可以通过修改颜色和字体来更改编辑器的外观。最后,如果您已经有自己的收藏夹,您可以为文本、图像、PDF和视频选择自己的默认应用程序。

    编辑器界面

    快照

    快照的工作方式有点像备份,除了快照,您可以在开发过程中的任何时候拍摄主机的图像,并即时保存它们。如果您刚刚完成了冗长的编码会话并希望保存进度,这会派上用场。当您需要帮助识别问题时,您还可以与团队成员共享快照,因为快照与特定的MAMP Pro安装无关。

    要拍摄快照,请导航到hosts选项卡。右键单击要为其拍摄快照的主机,然后选择create snapshot

    创建快照

    将出现一个对话框,让您知道创建可能需要一些时间。点击OK确认。

    “快照”对话框

    将出现另一个对话框。您将为快照命名,分配标签(如果您选择),选择保存快照的位置,然后单击Save按钮。

    保存您的快照

    在MAMP Pro中克隆主机

    作为WordPress开发人员,我们知道有时可能会出现问题。实施新的插件、代码或主题可能会破坏您的网站——尤其是在您最不期望的时候。通过克隆,您可以复制您的站点并测试无限量的变量,以确定当您想要在站点上实施多个文本更改时会发生什么。

    在MAMP Pro中克隆是一项简单的任务。首先导航到hosts。接下来,右键单击要克隆的主机。单击clone host

    克隆主机

    接下来,您将为克隆站点Name,然后Choose要创建目录的位置。最好在您的根主机文件夹中创建一个文件夹来存储您的文件。将站点的文件直接转储到根文件夹会导致问题。最后,单击clone host按钮。

    命名克隆

    其他编程语言

    人们使用MAMP的主要原因是能够在他们的本地机器上运行PHP应用程序。话虽如此,引擎盖下还有更多。如果您是一名有抱负的游戏开发人员,您可能会很高兴知道MAMP Pro能够运行Python。通过使用Ruby on Rails开发下一个 Web 项目,您可以超越基于PHP的WordPress站点的功能。最后,如果Perl是您的最爱,MAMP Pro可以满足您的需求。无论您要构建何种类型的Web项目或应用程序,您都可以使用PHP和MySQL以外的选项。

    无尽的PHP配置

    MAMP Pro能够在CGI模式下运行,这使您能够在任何给定主机上运行不同版本的PHP。如前所述,如果您的WordPress站点包含尚不兼容PHP 8.0的插件,那就太好了。此外,切换安装的 PHP 版本很容易。例如,模块模式允许您轻松地从一个版本切换到另一个版本,这对于测试不同的配置非常有用。当需要为WordPress站点更新PHP时,这将派上用场。

    要切换主机上安装的PHP版本,首先导航到Hosts部分。接下来,选择要更改的主机。右键单击它,然后单击Set PHP version to. 您可以从默认版本PHP 7.4.21切换至5.4.45到8.08之间的任何版本。

    PHP模块模式

    附加的功能

    除了前面提到的所有功能外,MAMP Pro还让您能够使用Memcached缓存您的服务器。Memcached是一款开源软件,它会为您的服务器拍摄照片并将其保存在云中,从而使您的网站能够更快地加载。

    另一个要提到的功能是设置动态DNS的能力。如果您的路由器无法处理动态DNS(尽管大多数现代路由器都可以),您可以使用MAMP Pro在您的IP发生任何更改时通知互联网。我们想提一下,如果您使用动态 DNS,您需要注册他们的合作伙伴之一:DNS-O-Matic、No-IP、dyn.com或easydns.com。

    最后,使用MAMP Pro,您将获得比免费版本更优化的WordPress体验。MAMP Pro不仅使安装WordPress变得简单,而且更快、更稳定。切换端口、重命名安装或分配SSL证书等操作不需要任何设置更改。它使WordPress保持完整,以便您可以继续设计您的网站而不会遇到麻烦。

    导航MAMP Pro界面

    MAMP Pro中有两个仪表盘界面可供选择。标准视图和扩展视图。标准视图更适合希望以最简单的方式工作的用户。它包括默认设置,您只需点击几下即可安装WordPress,无需任何自定义。扩展视图适用于希望完全控制其设置并且不怕弄脏配置端口、PHP设置、管理多个数据库等的核心WordPress开发人员。

    让我们先看一下标准视图,向您展示如何在仪表盘中四处走动。

    MAMP Pro标准视图

    您可以使用标准视图在MAMP Pro中找到构建WordPress站点所需的一切。您可以创建主机、自定义仪表盘、编辑文件以及在Apache和Nginx网络服务器之间进行选择。此外,您可以从此模式迁移、导入或发布您的主机。

    以下是标准视图包含的内容以及在哪里找到它的完整细分:

    1. 主机列表
    2. 自定义视图
    3. 添加主机
    4. 打开MAMP Pro网页界面
    5. 编辑文件
    6. 启动服务器
    7. 选择路径位置
    8. 打开服务器文件夹
    9. 在Apache和Nginx之间进行选择
    10. 分配SSL证书
    11. 选择PHP版本
    12. 使用MAMP查看器应用在移动设备上查看您的网站
    13. NAMO中显示(可选附加)
    14. 迁移您的主机
    15. 导入主机
    16. 发布主机
    17. 恢复对主机设置的更改
    18. 保存对主机设置的更改

    MAMP Pro基础视图

    MAMP Pro扩展视图

    通过为您提供对Web项目的最终控制,扩展视图超越了标准视图。经验丰富的WordPress开发人员喜欢在服务器设置、程序语言和PHP设置方面更实际的方法,他们会喜欢扩展视图的选项列表。

    扩展视图选项非常多,因此我们将向您展示在哪里可以找到它们:

    1. 主机列表
    2. 端口和用户设置
    3. 代码编辑器
    4. 云存储选项
    5. Apache网络服务器设置
    6. Nginx网络服务器设置
    7. MySQL选项
    8. 动态DNS设置
    9. 内存缓存设置
    10. Redis设置
    11. MailHog
    12. PHP设置
    13. 其他编程语言(Python、Ruby、Perl)
    14. 添加新主机
    15. MAMP Pro开始页面
    16. 代码编辑器
    17. 启动服务器
    18. 主机名
    19. PHP版本
    20. 动态DNS
    21. IP地址
    22. 端口号
    23. 网络服务器
    24. 文档根
    25. 附加功能
    26. 分辨率设置
    27. 恢复主机设置
    28. 保存主机设置

    MAMP Pro常规设置截图

    扩展视图Apache设置

    如果您为Web服务器选择Apache,则可以选择其他设置选项。您可以为您的目录选择指令,设置AllowOverride参数,设置目录索引,为VirtualHost指令定义其他参数,并指定管理员电子邮件地址。

    Apache设置窗口

    扩展视图Nginx设置

    当您选择Nginx作为托管WordPress的网络服务器时,您将拥有一些可以定义的附加设置。您可以选择您的目录索引并决定是否对其进行自动索引。您还可以为目录定义任何其他参数、设置访问限制以及允许或拒绝某些限制。

    Nginx设置窗口

    扩展视图SSL证书设置

    您可以在此处选择是否启用或禁用您的SSL证书。当您创建WordPress主机时,MAMP Pro会在您勾选复选框时自动生成一个(稍后会详细介绍)。除了可以在此处禁用之外,您还可以放入自定义证书和密钥文件,设置证书链文件,强制TLS仅允许最新版本,或创建新的自签名证书。

    SSL设置窗口

    扩展视图数据库设置

    在数据库设置中,您可以选择分配给每个主机的数据库。这对于需要多个数据库才能运行的站点很有用。例如,如果您根据某些参数在您的网站上创建了自定义搜索功能,您很可能需要一个单独的数据库。你可以在这里分配。

    数据库设置窗口

    扩展视图远程设置

    当需要将您的本地站点转移到实时环境时,您将使用此屏幕进行设置。在远程设置中,您可以使用以下选项。

    1. 启用远程功能
    2. 输入公共网址
    3. 设置您的FTP或SFTP连接
    4. 建立与远程mySQL服务器的连接
    5. 检查您的设置、迁移、导入或发布您的网站

    远程设置窗口

    扩展视图云设置

    在云设置选项卡中,您可以连接到您的云服务器,然后保存您的文件。您还可以从云中加载文件、删除它们并解决名称更改。此外,您可以将文件保存或加载到桌面。

    云设置窗口

    MAMP Pro入门

    如果您熟悉MAMP,就会知道设置WordPress网站并不是一个简单的过程。MAMP Pro并非如此。只需几个步骤即可创建WordPress。您不必手动安装任何WordPress文件。MAMP Pro会为您解决这个问题。此外,如果您选择Nginx作为您的Web服务器,则无需更改您的Web服务器的配置文件。MAMP确保Nginx已准备好开箱即用。在我们开始安装Nginx之前,让我们回顾一下使用Apache安装WordPress的步骤。

    出于本教程的目的,我们将使用标准视图。打开MAMP Pro并单击启动按钮以启动服务器。

    启动MAMP Pro服务器

    接下来单击+ Add Host按钮。

    添加本地服务器

    出现对话框时,单击WordPress图标,然后单击continue

    选择WordPress

    为您的主机Name并选择一个目标文件夹。当您单击Choose按钮时,MAMP将要求您在目标文件夹中创建一个文件夹。这是避免错误的重要步骤。事实上,如果您尝试将文件直接放到根文件夹中,MAMP会阻止您。创建文件夹后,单击continue

    命名您的服务器

    当最终屏幕出现时,系统会提示您创建管理员凭据。输入您选择的管理员名称,然后输入密码。然后您将输入您的电子邮件,并提供数据库信息。保留这些默认值很好。如果您选择更改数据库、用户和密码,请务必以wp_ 开头。

    创建您的服务器

    您应该使用哪个网络服务器?

    Apache于1995年推出,因此自然而然地,鉴于它已经存在很长时间,它是一个受欢迎的选择。大约67%的WordPress安装是使用Apache构建的。话虽如此,在过去的几年里,Nginx已经越来越受欢迎。

    Nginx是由一位名叫Igor Sysoev的俄罗斯程序员在2002年创建的。他创建Nginx的主要原因是Apache同时与大量客户端作斗争。他想创建一个速度更快、需要更少资源的网络服务器。经过几年的测试,第一个Nginx版本于2004年公开。从那时起,Nginx的粉丝群呈指数级增长。

    WordPress在Nginx上运行良好,它拥有 33% 的托管在互联网上的网站。几家流行的托管服务提供商现在都在使用它。SiteGround、InMotion Hosting 和Cloudways等公司使用Nginx网络服务器进行托管计划。

    鉴于Apache和Nginx都是目前最好的网络服务器之一,选择正确的网络服务器很大程度上取决于您的网站有多大。如果您有一个不包含大量文件的纯信息站点,那么您可以使用久经考验的Apache。然而,较大的站点可能最好使用Nginx,因为它本身具有速度优势。事实上,Uber、Instagram、Instacart、Airbnb等公司都是建立在Nginx之上的。

    使用MAMP Pro在Nginx上设置WordPress

    完全可以在MAMP Pro中的Nginx上运行WordPress。但是,您需要采取一些额外的步骤才能实现这一目标。首先,Nginx不使用WordPress通常需要的.htaccess文件。因此,您需要以不同的方式安装WordPress。

    对于此示例,我们将使用扩展视图创建一个新的测试站点。这次我们需要创建一个没有WordPress的主机。如果我们选择WordPress,则会自动安装Apache。在MAMP Pro中,导航到hosts下的general选项卡。单击+ Add Host按钮。这一次,我们将单击empty按钮来创建我们的主机。

    空服务器

    我们将主机命名为Nginx-test。为您的主机设置location folder,然后单击continue。创建新主机后,我们需要确保在general选项卡下选择了Nginx。接下来,单击Save。重新启动服务器以确保进行更改是个好主意。为此,请单击屏幕右上角的Stop。等待几秒钟,然后单击Start

    设置Nginx Web服务器

    在附加部分的general选项卡下,单击add按钮。

    Nginx附加选项

    将出现一个对话框。要安装WordPress,请选择WordPress(最新版本),然后单击继续

    在Nginx上安装WordPress

  • 如何使用Varying Vagrant Vagrants (VVV) 进行WordPress开发

    如何使用Varying Vagrant Vagrants (VVV) 进行WordPress开发

    开发您的网站始终是一个里程碑式的时刻,尤其是当您是第一次时。然而,尽管几乎每个主机都提供了一种在您的服务器上启动WordPress安装的方法,但不建议这样做。

    更好的方法是在您的计算机上创建一个站点,并在您准备好后上传它。使用诸如Varying Vagrant Vagrants (VVV)之类的工具进行WordPress开发是一种很棒的、平台推荐的方法。

    在本文中,我们将向您展示如何启动和运行VVV。在此之前,我们还将讨论可供您使用的替代方案。首先,让我们讨论一下为什么您不应该在线开发您的网站。

    为什么要创建本地WordPress网站

    在创建WordPress 网站(尤其是您的第一个网站)时,您的主机通常会成为首选资源或支持点。这是因为您的主机应该比任何人都更了解如何最好地安装和使用它提供的站点创建包。

    但是,在实时服务器上开发WordPress网站并不是最好的方法,原因如下:

    • 您在不需要时使用您网站的资源。
    • 尽管可能可以访问暂存或站点限制功能,但您仍在“公开”开发您的站点。
    • 任何开发错误都可能影响您网络上的所有站点,如果发生最坏的情况会导致混乱。
    • 在实时服务器上开发您的网站存在安全问题,因为您的网站在很长一段时间内自然会不完整。

    也有很多连锁反应,比如感觉你在让你的网站上线时是在争分夺秒。因此,离线并给自己一个“有围墙的沙盒”环境来开发您的网站更容易在钱包和神经上。

    本地网站开发:您需要了解的基础知识

    本地网站开发通常涉及使用“堆栈”软件尽可能模拟实时服务器。传统上,网站将使用实时服务器上常见的软件在“LAMP”堆栈上开发:

    结合起来,这会将您的计算机变成本地服务器,让您在与实时服务器类似的环境中完整地创建和测试您的站点。

    然而,传统的LAMP堆栈也有缺点:它可能会占用大量资源,并且不是一致的远程开发的最佳解决方案。

    Vagrant等工具旨在提供精益且可移植的虚拟开发环境。结合VirtualBoxVMware等解决方案,您可以创建“虚拟机”——封装的服务器,本质上是可以在其中工作的全功能计算机。

    为WordPress开发引入Varying Vagrant Vagrants (VVV)

    总而言之,虽然传统的LAMP堆栈是一种在本地开发网站的可靠方法,但Vagrant和VirtualBox等工具会加速这一过程。

    Varying Vagrant Vagrants (VVV)是一个听起来很奇怪的解决方案,可帮助您利用虚拟机的力量来创建WordPress网站。如果您采用传统的开发路线,这通常需要一些额外的步骤。

    它是从命令行运行的,并且几乎包括您进行设置所需的一切:

    teddy bear命令窗口

    安装后,您可以从命令行vagrant up使用启动VVV,然后使用vagrant halt停止它。站点在专用配置文件中创建:

    默认配置

    您对VVV安装所做的任何更改都需要使用专用命令provision进行“配置”。

    您创建的站点在虚拟沙盒环境中运行。这意味着任何问题都是该环境独有的,不会影响您的实际计算机。

    WordPress已安装并准备好开始运行,因此一旦创建了站点,您就可以像访问实时站点一样访问它,使用.test作为您的顶级域 (TLD)。但是,在大多数情况下,这些站点只能通过您的计算机访问。

    这对于运行类似服务器的配置非常有用,因为您可以使用与实时服务器类似的设置,并在开发过程中诊断任何错误。通过在开发环境和实时服务器之间建立更一致的路径,您可能会节省时间和金钱。

    改变流浪者的替代方案

    虽然本文将重点介绍使用VVV进行WordPress开发,但值得一提的是一些替代方案。VVV不会是适合所有人的解决方案。

    考虑到您将使用多少命令行和配置文件,我们建议您至少需要代码的工作知识。调试VVV问题也必须通过命令行进行。更重要的是,支持渠道是通过GitHub实现的,因此您需要能够向其他程序员表达您的问题。

    如果您想利用VVV的强大功能但不喜欢编码的想法,那么有一些不错的选择。

    1.最有名的是DesktopServer

    DesktopServer

    它使用“XAMPP”堆栈通过专用的图形用户界面 (GUI) 创建WordPress站点,并且超级快速且易于使用。

    2.另一个类似的选择是Local by Flywheel

    Local by Flywheel

    它的GUI外观可以说是更时尚,并且使用Docker运行得更快——考虑这是Vagrant的替代品。

    虽然这两种解决方案都有免费套餐,但Local功能更全面。但是,这两种解决方案都具有许多很酷的高级功能,可以检查是否平衡了竞争环境。

    如何使用Varying Vagrant Vagrants (VVV) 进行WordPress开发

    诚然,设置VVV比其他解决方案更复杂。但是,您在易于设置方面失去的东西,您在灵活性和便携性方面获得了优势。

    以下是创建VVV WordPress网站的四个步骤:

    1. 在开始之前获取所需的工具
    2. 使用命令行安装VVV
    3. 使用config.yml文件创建新站点。
    4. 使用VVV仪表盘访问您的站点

    让我们来看看每一步,从你的工具开始。

    第 1 步:收集工具

    任何一位优秀的厨师都是在现场就餐的。换句话说,要创建一个WordPress开发环境,您需要将所有工具和技能放在一起,准备开始。

    VVV有一些系统和软件要求。这是您需要的:

    • 对命令行的管理访问权限。无论您的操作系统默认使用什么(例如Mac上的终端、Windows上的命令提示符和Linux上的Shell)都是完美的。如果您对这些生疏了,你可能还需要完善你的技能。
    • 最新版本的流浪者。这是您将用于为安装提供动力的堆栈,可以使用标准下载包进行安装。
    • 最新版本的VirtualBox。这为您的VVV安装提供了虚拟操作系统。同样,这是一个简单的下载。
    • Git版本控制系统 (VCS)。这是一个以开发人员为中心的工具,可让您跟踪您创建的项目中的更改。对于这个应用程序,我们将使用它来下载VVV。

    在开始安装VVV之前,最好先下载并安装计算机上尚未安装的任何组件。VVV中的错误可能会令人沮丧,并且不建议采取诱人的命运,特别是如果这是您第一次使用所涉及的软件。

    另外,请注意,具有M1处理器的Mac机器目前无法使用VVV和VirtualBox(由于后者存在问题),除非您使用无法始终如一的解决方法。因此,您可能需要考虑替代解决方案,至少是暂时的。

    第 2 步:在您的计算机上安装VVV

    总而言之,在此步骤之前,您需要安装Vagrant、VirtualBox和Git。准备好后,打开命令行,然后键入以下内容:

    git clone -b stable git://github.com/Varying-Vagrant-Vagrants/VVV.git ~/vagrant-local
    git clone -b stable git://github.com/Varying-Vagrant-Vagrants/VVV.git ~/vagrant-local
    git clone -b stable git://github.com/Varying-Vagrant-Vagrants/VVV.git ~/vagrant-local

    这要求Git VCS复制给定URL处的文件,并将其下载到名为vagrant-local的文件夹中,该文件夹位于您的文件夹中:

    克隆vvv

    这应该需要几秒钟的时间,具体取决于您的互联网连接,一旦您收到成功消息,您几乎可以启动并运行。

    第 3 步:在config.yml文件中创建新站点

    在第一次启动VVV之前,最好创建一个新的config.yml文件副本。这会保留默认站点,并让您有机会创建新站点:

    • 打开命令行并使用cd vagrant-local命令进入您的主VVV文件夹(通常为vagrant-local)。
    • 运行vagrant status,这将复制并重命名文件。

    接下来,在AtomSublime Text等文本编辑器中打开config.yml文件。

    编辑config.yml文件

    此文件包含创建和管理站点所需的所有配置:

    站点配置

    有很多选择,尽管我们将专注于网站部分。在这里,遵循现有站点的格式和布局,并添加以下“boilerplate”代码:

    mysite:repo: https://github.com/Varying-Vagrant-Vagrants/custom-site-template.githosts:- mysite.test
    mysite:repo: https://github.com/Varying-Vagrant-Vagrants/custom-site-template.githosts:- mysite.test
    mysite:repo: https://github.com/Varying-Vagrant-Vagrants/custom-site-template.githosts:- mysite.test

    这告诉VVV使用URL mysite.test使用预定义的模板创建一个新站点。准备好后,保存更改,然后返回命令行。

    第 4 步:访问您的VVV WordPress网站

    最后一步是访问您的VVV WordPress网站。您可以在基于浏览器的仪表盘中找到它们,要访问它,请执行以下操作:

    • 打开命令行,并通过运行cd vagrant-local确保您位于正确的目录中。
    • 运行vagrant up。这告诉Vagrant和VVV开始。
    • 可能输入您的管理员密码,然后按照说明安装GoodHosts插件,该插件可让您使用“漂亮”的URL访问仪表盘。
    • 选择一个网络——通常是选项1下的Wi-Fi 。

    在这一点上,你应该耐心等待VVV做它的事情。看到“泰迪熊”和VVV徽标后,您就可以访问仪表盘了。

    打开您的VVV WordPress网站

    要访问仪表盘,请打开浏览器并前往vvv.test。您将看到所有网站的列表(带有可点击的URL)以及其他相关信息:

    vvv仪表盘

    请注意,您无需在每次启动VVV时都访问仪表盘。您可以直接前往您网站的wp-admin页面直接登录,就像使用任何其他WordPress网站一样。默认凭据是:

    • 用户名: 管理员
    • 密码: 密码

    最后,您可以在config.yml文件中扩展站点模板,以创建完全自定义的WordPress安装版本。官方GitHub VVV页面提供了所有详细信息,甚至包括各种利基WordPress网站的示例。

    小结

    启动一个新的WordPress网站充满了兴奋和希望,因为这意味着您的项目正处于下一个阶段。为确保您只专注于开发您的网站,我们建议您使用本地工具,例如VVV

    这篇文章提供了开始使用VVV进行WordPress开发的四个步骤。让我们回顾一下这些步骤:

    1. 下载并安装运行VVV所需的一切,例如VagrantVirtualBox以及系统所需的任何东西。
    2. 通过命令行安装VVV。
    3. config.yml文件中为您的新站点创建参数。
    4. 启动VVV WordPress站点的专用URL并开始开发它。
  • 如何使用PHP函数get_posts来构建文章列表

    如何使用PHP函数get_posts来构建文章列表

    WordPress的get_posts是一个强大的函数,允许开发人员从WordPress数据库中检索内容。您可以最详细地指定要查找的文章、页面和自定义文章类型,获取自定义结果集,然后像PHP/MySQL忍者一样过滤和排序项目。

    但是,如果您不是PHP专业人士,请不要害怕,有无数的PHP教程可供您观看或阅读并学习该语言。您只需要一点PHP知识即可创建自定义文章列表以显示在您的网站上,因为get_posts函数保留了一组参数,允许构建简单或高级查询。

    使用WordPress的get_posts分为两个步骤:

    • 首先,您必须构建自定义查询。实际上,它看起来不像MySQL查询,而且您不会编写任何SELECT语句。您只需要定义一个参数数组并将其传递给get_posts函数。WordPress将该数组转换为真实且安全的MySQL查询,针对数据库运行它,并返回一个文章数组。
    • 其次,您必须使用foreach循环遍历get_posts返回的结果集。

    话虽如此,在这篇文章中,我们将首先深入探讨上面提到的关键概念,特别是如何get_posts工作、如何构建自定义查询以及如何在前端站点上显示数据。然后,我将提供一个真实示例,其中包含一段代码,您可以在暂存环境中获取、编辑和使用代码片段,以进行测试和开发。

    注意:我们通常区分文章、页面和自定义文章类型。在本文中,我们使用术语“post”来表示常规博客文章以及页面和自定义文章类型。所有这些文章类型都存储在数据库的“wp_posts”表中。文章类型之间的主要区别在于“post_type”字段的值。从开发人员的角度来看,文章、页面和自定义文章类型都是文章

    get_posts 函数简介

    Codex对get_posts函数的描述如下:

    检索最新文章的数组,或与给定条件匹配的文章。

    我们可以这样使用get_posts

    $args = array(
    ‘numberposts’=> 20,
    ‘category’=> 4
    );
    $my_posts = get_posts( $args );
    if( ! empty( $my_posts ) ){
    $output = ‘<ul>’;
    foreach ( $my_posts as $p ){
    $output .= ‘<li><a href=”‘ . get_permalink( $p->ID ) . ‘”>’
    . $p->post_title . ‘</a></li>’;
    }
    $output .= ‘</ul>’;
    }
    $args = array(
    ‘numberposts’=> 20,
    ‘category’=> 4
    );
    $my_posts = get_posts( $args );
    if( ! empty( $my_posts ) ){
    $output = ‘<ul>’;
    foreach ( $my_posts as $p ){
    $output .= ‘<li><a href=”‘ . get_permalink( $p->ID ) . ‘”>’
    . $p->post_title . ‘</a></li>’;
    }
    $output .= ‘</ul>’;
    }
    $args = array(
    'numberposts'=> 20,
    'category'=> 4
    );
    $my_posts = get_posts( $args );
    if( ! empty( $my_posts ) ){
    $output = '<ul>';
    foreach ( $my_posts as $p ){
    $output .= '<li><a href="' . get_permalink( $p->ID ) . '">' 
    . $p->post_title . '</a></li>';
    }
    $output .= '</ul>';
    }

    上面的函数检索指定类别中的最新20篇博文(默认为'post_type'is 'post')并返回一个对象数组$post。您可以遍历数组以在屏幕上显示文章。这很容易,对吧?

    get_posts 用于WP_Query检索文章项目,并且它保留了一个包含相同参数的数组WP_Query(除了少数例外)。所以我们有一个庞大的变量列表,可以用来构建我们的自定义查询。这些参数分为以下15个类别

    • Author参数
    • Category参数
    • Tag参数
    • Taxonomy参数
    • Search参数
    • Post & Page参数
    • Password参数
    • Post Type参数
    • Order & Orderby参数
    • Date参数
    • Custom Field (post meta) 参数
    • Permission参数
    • Mime Type参数
    • Caching参数
    • Return Fields参数

    快速查看上面的列表可以让您了解可以针对WordPress数据库构建和运行的各种自定义查询。因此,让我们更深入地研究查询参数并开始构建我们的文章列表。

    如何使用get_posts构建查询

    每一类参数都与同一条信息相关。例如,我们可以构建一个查询来检索指定作者或排除指定作者的文章,通过ID或nicename定义作者。同样,我们可以构建查询,按类别、标签、分类、日期、自定义字段等获取文章。

    如何使用参数构建简单查询

    许多参数可以以非常相似的方式使用,无论它们属于哪个类别。例如,以下参数允许按文章作者查询数据库:

    • authorint ) – 作者ID
    • author_name字符串)——作者的user_nicename
    • author__inarray ) – 多个作者ID的数组
    • author__not_inarray ) — 要从结果集中排除的多个作者ID的数组

    我们如何使用这些参数?

    在以下示例中,参数'author' 指定我们想要ID = 1的作者最近撰写的博客文章:

    $my_posts = get_posts( array( ‘author’ => 1 ) );
    $my_posts = get_posts( array( ‘author’ => 1 ) );
    $my_posts = get_posts( array( 'author' => 1 ) );

    相同的 ‘author’参数允许以不同的方式查询数据库:

    // return an array of posts from specific authors
    $my_posts = get_posts( array( ‘author’ => ‘1,5,12’ ) );
    // return an array of posts from specific authors
    $my_posts = get_posts( array( ‘author’ => ‘1,5,12’ ) );
    // return an array of posts from specific authors
    $my_posts = get_posts( array( 'author' => '1,5,12' ) );
    // return an array of posts excluding the specified author
    $my_posts = get_posts( array( ‘author’ => -1 ) );
    // return an array of posts excluding the specified author
    $my_posts = get_posts( array( ‘author’ => -1 ) );
    // return an array of posts excluding the specified author
    $my_posts = get_posts( array( 'author' => -1 ) );

    因此,根据参数的值,您将获得一个结果集,其中包含来自单个作者(整数)、来自多个作者(逗号分隔值列表)或不包括作者(负值)的文章。

    其他参数提供了额外的灵活性。例如,以下调用get_posts返回多个作者的最新博客文章数组:

    // return an array of posts from multiple authors
    $my_posts = get_posts( array( ‘author__in’ => array( 1, 5, 12 ) ) );
    // return an array of posts from multiple authors
    $my_posts = get_posts( array( ‘author__in’ => array( 1, 5, 12 ) ) );
    // return an array of posts from multiple authors
    $my_posts = get_posts( array( 'author__in' => array( 1, 5, 12 ) ) );

    我们还可以排除多个作者:

    // return an array of posts from multiple authors
    $my_posts = get_posts( array( ‘author__not_in’ => array( 1, 5, 12 ) ) );
    // return an array of posts from multiple authors
    $my_posts = get_posts( array( ‘author__not_in’ => array( 1, 5, 12 ) ) );
    // return an array of posts from multiple authors
    $my_posts = get_posts( array( 'author__not_in' => array( 1, 5, 12 ) ) );

    同样,我们可以使用类别参数、标签参数、文章类型参数,但有一些具体的区别。例如,请参见类别参数:

    • cat整数
    • category_name字符串
    • category__and数组
    • category__in数组
    • category__not_in数组

    无论如何,并非所有参数都像这些参数一样易于使用。此外,我们可以在单个查询中使用类别参数、文章类型参数、mime类型参数等。这意味着我们可以对结果集中的项目进行精细控制,并且可以完全基于文章类型、自定义分类法和自定义字段构建更高级的查询。

    所以,让我们更深入地研究吧!

    如何在WordPress中构建高级查询

    让我们通过基于自定义文章类型和自定义分类的更高级查询向前迈出一步。假设您有以下文章类型:

    名称:书籍

    分类名称:book_category、book_author

    支持:标题、编辑器、缩略图、摘录、自定义字段

    自定义文章类型和自定义分类法

    假设您想要指定自定义分类book_category中最新书籍的列表。这是参数数组:

    $args = array(
    ‘post_type’=> ‘book’,
    ‘tax_query’=> array(
    array(
    ‘taxonomy’=> ‘book_category’,
    ‘field’=> ‘slug’,
    ‘terms’=> ‘sci-fi’
    )
    ),
    );
    $args = array(
    ‘post_type’=> ‘book’,
    ‘tax_query’=> array(
    array(
    ‘taxonomy’=> ‘book_category’,
    ‘field’=> ‘slug’,
    ‘terms’=> ‘sci-fi’
    )
    ),
    );
    $args = array(
    'post_type'=> 'book',
    'tax_query'=> array(
    array(
    'taxonomy'=> 'book_category',
    'field'=> 'slug',
    'terms'=> 'sci-fi'
    )
    ),
    );

    上面的参数只是告诉WordPress检索'sci-fi' 'book_category'.

    参数采用'tax_query'参数数组的数组(即数组数组)。这些嵌套数组允许基于多种分类构建非常复杂的查询,如下例所示:

    $args = array(
    ‘numberposts’=> 10,
    ‘post_type’=> ‘book’,
    ‘relation’=> ‘AND’,
    ‘tax_query’=> array(
    array(
    ‘taxonomy’=> ‘book_category’,
    ‘field’=> ‘slug’,
    ‘terms’=> ‘sci-fi’
    ),
    array(
    ‘taxonomy’=> ‘book_author’,
    ‘field’=> ‘term_id’,
    ‘terms’=> 22
    )
    )
    );
    $args = array(
    ‘numberposts’=> 10,
    ‘post_type’=> ‘book’,
    ‘relation’=> ‘AND’,
    ‘tax_query’=> array(
    array(
    ‘taxonomy’=> ‘book_category’,
    ‘field’=> ‘slug’,
    ‘terms’=> ‘sci-fi’
    ),
    array(
    ‘taxonomy’=> ‘book_author’,
    ‘field’=> ‘term_id’,
    ‘terms’=> 22
    )
    )
    );
    $args = array(
    'numberposts'=> 10,
    'post_type'=> 'book',
    'relation'=> 'AND',
    'tax_query'=> array(
    array(
    'taxonomy'=> 'book_category',
    'field'=> 'slug',
    'terms'=> 'sci-fi'
    ),
    array(
    'taxonomy'=> 'book_author',
    'field'=> 'term_id',
    'terms'=> 22
    )
    )
    );

    这些参数允许我们检索由ID #22编写的最新10个'book'文章类型的列表。该参数设置 中列出的每个分类之间的逻辑关系。上面我们将其值设置为,因为我们需要检索属于作者 #22 所写类别的所有书籍。AND

    这些参数允许我们检索由ID为#22的'book_author'编写的'sci-fi''book_category'中最新10种“book”文章类型的列表。'relation'参数设置'tax_query'中列出的每个分类法之间的逻辑关系。在上面,我们将其值设置为AND,因为我们需要检索属于 'sci-fi'类别AND 由作者#22撰写的所有书籍。

     

    如何使用自定义字段参数构建元查询

    有时,您可能需要根据特定的自定义字段键和/或值构建文章列表。

    $args = array(
    ‘meta_key’=> ‘cover’,
    ‘meta_value’=> ‘paperback’,
    ‘meta_compare’=> ‘=’
    );
    $args = array(
    ‘meta_key’=> ‘cover’,
    ‘meta_value’=> ‘paperback’,
    ‘meta_compare’=> ‘=’
    );
    $args = array(
    'meta_key'=> 'cover',
    'meta_value'=> 'paperback',
    'meta_compare'=> '='
    );

    这些参数允许我们通过自定义字段键和值检索所有文章。'meta_compare'设置测试'meta_value'参数值所需的运算符。这里的'meta_value''=',这也是默认值。

    可用值为'=''!=''>''>=''<''<=''LIKE''NOT LIKE''IN''NOT IN''BETWEEN''NOT BETWEEN''NOT EXISTS''REGEXP','NOT REGEXP''RLIKE'.

    这是一个非常简单的示例,但我们可以构建更高级的查询。在下一个示例中,我们在数据库中查询2010年之后出版的奇幻书籍:

  • 如何为古腾堡创建动态区块

    如何为古腾堡创建动态区块

    你还在为古腾堡感到困惑吗?或者您是那些坚信区块编辑器的潜力并想知道使用区块编辑器可以将他们的创造力推到多远的人中的一员?

    无论您属于哪种类型的用户,古腾堡都会留下来,这篇文章将让您深入了解 WordPress 块编辑器幕后发生的事情。但这还不是全部!

    我们之前的教程中我们提供了对Gutenberg区块开发的一般介绍之后,本文超越了基础知识,介绍了更高级的区块类型。这些块被称为动态区块。

    今天,您将了解什么是动态区块、它们是如何工作的,以及从头开始创建动态区块所需了解的一切。

    那么,什么是Gutenberg动态区块,静态区块和动态区块之间的主要区别是什么?

    1. 什么是动态区块?一个例子
    2. 从开发人员的角度来看Gutenberg动态区块
    3. 如何访问文章数据
    4. 如何创建动态区块:示例项目
    5. 在编辑器中构建要渲染的区块
    6. 构建要在页面上呈现的区块
    7. 动态区块开发的推荐资源

    什么是动态区块?一个例子

    使用静态区块时,用户在编辑文章或页面时手动添加内容,而使用动态区块时,内容会在页面加载时动态加载和处理。使用动态区块,区块内容从数据库中提取并按原样显示或由任何类型的数据操作产生。

    让我们用一个例子来解释一下。假设您要创建一组嵌套区块,显示文章作者详细信息以及来自同一作者的最新文章的选择。

    包括文章作者和最新文章组区块

    包括文章作者和最新文章组区块

    作为Gutenberg用户,您可以使用以下区块:

    • 标题核心区块
    • 文章作者核心区块
    • 最新文章核心区块

    您还可以创建一个包含这些区块的组,并将该组添加到可重复使用的区块中以供将来使用。

    将组区块添加到可重用区块

    将组区块添加到可重用区块

    这很简单,不是吗?您可以创建一个动态区块并将其添加到您的文章和页面中。

    WordPress 5.9开始,区块编辑器提供了90多个不同的区块,您很可能会立即找到适合您的区块。而且,如果您需要更多,请在WordPress插件目录中快速搜索,您会发现很多免费插件提供了额外的区块

    但是,如果您是WordPress开发人员,或者您正计划从事WordPress开发人员的职业怎么办?也许您有非常特定的需求,找不到您正在寻找的区块,或者您只是想获得新的专业技能。在这种情况下,您可能想学习如何创建动态区块。

    从开发人员的角度来看Gutenberg动态区块

    动态区块有两个主要用例。

    第一个用例是当包含区块的页面尚未更新时,您需要更新区块的内容。例如,当区块包含最新文章或评论的列表时会发生这种情况,并且通常每当区块的内容是使用从数据库检索的数据动态生成时。

    添加查询循环区块

    添加查询循环区块

    第二个用例是需要立即在前端显示对区块代码的更新。使用动态区块而不是静态区块会导致更改立即应用于所有出现的区块。

    另一方面,如果您要更改由静态区块生成的HTML,用户将看到一个无效对话框,直到该区块的先前版本的每个实例都被删除并替换为新版本,或者您将旧版本标记为不推荐使用的版本(另请参阅弃用区块验证、弃用和迁移经验)。

    意外或无效的内容

    意外或无效的内容

    话虽如此,在开始构建动态区块之前,您需要了解一些概念。

    1. 应用程序状态和数据存储
    2. Gutenberg中的模块化、包和数据存储
    3. WordPress数据存储

    应用程序状态和数据存储

    Gutenberg是一个React SPA应用程序,Gutenberg中的所有内容都是一个React组件。编辑器中的文章标题、标题、段落、图像和任何HTML内容块都是React组件,以及侧边栏和区块工具栏控件。

    在我们之前的文章中,我们只使用属性来存储数据。在本文中,我们将通过引入state的概念更进一步。

    简单地说,state对象是一个普通的JavaScript对象,用于包含有关组件的信息。组件的state可以随着时间而改变,并且任何时候改变,组件都会重新渲染。

    state对象类似,属性是普通的JavaScript对象,用于保存有关组件的信息。但是props和state之间有一个关键区别

    props传递给组件(类似于函数参数),而状态在组件内管理(类似于在函数中声明的变量)。

    您可以将状态视为在给定时间点获取的数据快照,应用程序存储这些数据以控制组件的行为。例如,如果块编辑器设置侧边栏打开,则一条信息将存储在state对象的某个位置。

    当信息在单个组件内共享时,我们称之为本地状态。当信息在应用程序内的组件之间共享时,我们称之为应用程序状态

    Application State与store的概念密切相关。根据Redux文档

    一个store保存着应用程序的整个状态树。更改其内部状态的唯一方法是在其上分派一个操作

    因此,Redux将应用程序状态存储在单个不可变对象树(即存储)中。对象树只能通过使用actionsreducers创建新对象来更改。

    在WordPress中,商店由WordPress数据模块管理。

    Gutenberg中的模块化、包和数据存储

    Gutenberg存储库从头开始构建在几个可重用且独立的模块上,这些模块组合在一起构建了编辑界面。这些模块也称为

    官方文档列出了两种不同类型的包

    • 生产包组成了在浏览器中运行的生产代码。WordPress中有两种类型的生产包:
    • 开发包用于开发模式。这些包包括用于linting、测试、构建等的工具。

    在这里,我们最感兴趣的是带有数据存储的包,用于检索和操作数据。

    WordPress数据存储

    WordPress 数据模块建立在Redux之上,并共享三个Redux核心原则,尽管有一些关键区别

    Info Redux是JavaScript应用程序的状态管理器。Redux的工作方式总结为三个基本原则

    • 单一事实来源:应用程序的全局状态存储在单个存储中的对象树中。
    • 状态是只读的:改变状态的唯一方法是发出一个动作,一个描述发生了什么的对象。
    • 使用纯函数进行更改:要指定状态树如何通过操作进行转换,您可以编写纯reducer。

    官方文档提供了以下定义

    WordPress的数据模块用作管理插件和 WordPress 本身的应用程序状态的中心,提供工具来管理不同模块内和模块之间的数据。它被设计为一种用于组织和共享数据的模块化模式:简单到足以满足小型插件的需求,同时可扩展以服务于复杂的单页应用程序的需求。

    默认情况下,Gutenberg在应用程序状态中注册多个数据存储。这些商店中的每一个都有特定的名称和用途:

    通过这些商店,您将能够访问一大堆数据:

    1. 与当前文章相关的数据,例如文章标题、摘录、类别和标签、区块等。
    2. 与用户界面相关的数据,即开关是打开还是关闭。
    3. 与整个WordPress安装相关的数据,例如注册分类法、文章类型、博客标题、作者等。

    这些存储存在于全局wp对象中。要访问商店的状态,您将使用select函数。

    要查看它是如何工作的,请创建一个新文章或页面并启动浏览器的检查器。找到控制台并输入以下代码行:

    wp.data.select(“core”)
    wp.data.select(“core”)
    wp.data.select("core")

    结果将是一个对象,其中包含可用于从core数据存储中获取数据的函数列表。这些函数称为选择器并充当访问状态值的接口。

    核心WordPress数据存储对象

    核心WordPress数据存储对象

    Info selectors对象包括一组用于访问和导出状态值的函数。选择器是一个接受状态和可选参数并从状态返回一些值的函数。调用选择器是从您的状态中检索数据的主要机制,并作为对原始数据的有用抽象,这些原始数据通常更容易更改并且不太容易用作规范化对象。(来源:Github

    WordPress数据存储通常包含有关WordPress的信息,选择器是您获取该信息的方式。例如,getCurrentUser()返回当前用户的详细信息:

    wp.data.select(“core”).getCurrentUser()
    wp.data.select(“core”).getCurrentUser()
    wp.data.select("core").getCurrentUser()

    检查getCurrentUser响应

    检查getCurrentUser响应

    另一个可用于从数据存储中检索用户详细信息的选择器是getUsers():

    wp.data.select(“core”).getUsers()
    wp.data.select(“core”).getUsers()
    wp.data.select("core").getUsers()

    下图显示了响应对象:

    检查getUsers响应

    检查getUsers响应

    要获取单个用户的详细信息,您只需键入以下行:

    wp.data.select(“core”).getUsers()[0]
    wp.data.select(“core”).getUsers()[0]
    wp.data.select("core").getUsers()[0]

    使用相同的选择器,您还可以检索author分配了角色的站点用户:

    wp.data.select( ‘core’ ).getUsers({ who: ‘authors’ })
    wp.data.select( ‘core’ ).getUsers({ who: ‘authors’ })
    wp.data.select( 'core' ).getUsers({ who: 'authors' })

    您还可以检索已注册的分类法:

    wp.data.select(“core”).getTaxonomies()
    wp.data.select(“core”).getTaxonomies()
    wp.data.select("core").getTaxonomies()

    检查getTaxonomies响应

    检查getTaxonomies响应

    已注册的文章类型列表:

    wp.data.select(“core”).getPostTypes()
    wp.data.select(“core”).getPostTypes()
    wp.data.select("core").getPostTypes()

    或插件列表:

    wp.data.select(“core”).getPlugins()
    wp.data.select(“core”).getPlugins()
    wp.data.select("core").getPlugins()

    现在让我们尝试访问不同的数据存储。为此,您仍将使用select函数,但提供不同的命名空间。让我们尝试以下方法:

    wp.data.select(“core/edit-post”)
    wp.data.select(“core/edit-post”)
    wp.data.select("core/edit-post")

    现在您将获得以下响应对象。

    访问编辑器的UI数据

    访问编辑器的UI数据

    如果您想知道设置侧边栏是否打开,您可以使用isEditorSidebarOpened选择器:

    wp.data.select(“core/edit-post”).isEditorSidebarOpened()
    wp.data.select(“core/edit-post”).isEditorSidebarOpened()
    wp.data.select("core/edit-post").isEditorSidebarOpened()

    如果侧边栏打开,则此函数返回true

    侧边栏已打开

    侧边栏已打开

    如何访问文章数据

    您现在应该对如何访问数据有了基本的了解。现在我们将仔细研究一个特定的选择器getEntityRecords函数,它是提供对post数据的访问权限的选择器。

    在块编辑器中,右键单击并选择Inspect。在控制台选项卡中,复制并粘贴以下行:

    wp.data.select(“core”).getEntityRecords(‘postType’, ‘post’)
    wp.data.select(“core”).getEntityRecords(‘postType’, ‘post’)
    wp.data.select("core").getEntityRecords('postType', 'post')

    这会向Rest API发送请求,并返回与上次发布的博客文章相对应的记录数组。

    getEntityRecords返回文章列表

    getEntityRecords返回文章列表

    Info 请注意,第一次将请求发送到Rest API时,响应将一直持续为null到请求完成。所以,如果你得到null了,不用担心,然后再试一次。

    getEntityRecords接受三个参数

    • kind 字符串:实体类型(即postType)。
    • name 字符串:实体名称(即post)。
    • query ?Object:可选术语查询(即{author: 0})。

    您可以使用arguments对象构建更具体的请求。

    例如,您可以决定响应应该只包含指定类别的文章:

    wp.data.select
  • 如何创建一个有效的WordPress开发流程

    如何创建一个有效的WordPress开发流程

    WordPress是一个伟大的平台,但它有时也会有点无序–至少从代码的角度来看。这是因为代码已经经历了许多迭代,随着更新的推出,有时事情的编码并不像他们可以做的那样有效。

    虽然代码有时会有点乱,但这并不意味着你的开发过程也要跟着乱。虽然混乱的代码常常因为快速的生产计划而被原谅,但作为一个网络开发者,通过实施适当的工作流程,你实际上可以赚取更多。

    在这篇文章中,我们将介绍一些提示,帮助你用手头正确的工具以正确的方式开发WordPress网站。我们还将提供一个循序渐进的步骤,以帮助你遵循这些提示。

    通过遵循本指南,你可以避免开发WordPress网站时出现的一些常见问题。而且,你也将能够创建一个易于维护和更新的网站。

    1. 高质量代码的属性
    2. 为什么WordPress开发需要顶级的编码实践
    3. WordPress开发流程改进技巧
    4. 为什么花时间在WordPress开发流程规划上是至关重要的
    5. 理想的WordPress开发流程

    高质量代码的属性

    在我们深入研究关于创建WordPress开发工作流程的完整指南之前,让我们暂停一下,讨论一下为什么高质量的代码实际上很重要。很重要。

    当考虑你的网站的代码时,有几个关键属性你应该记住。这些属性将有助于确保你的代码是干净的,有条理的,并且易于理解。

    以下是高质量代码的一些属性。

    • 精简
    • 易行
    • 模块化
    • 评论良好
    • 可重复使用,易于维护

    这些属性可能看起来有很多需要记住,但不要担心。我们将在我们的指南中全面介绍如何实现每个属性。但首先,我们需要谈谈为什么你的开发工作流程必须遵守这些标准。

    为什么WordPress开发需要顶级的编码实践

    为了使WordPress网站正常运行,构成网站的代码需要是高质量的。这对WordPress网站尤其重要,因为它们通常很复杂,有许多不同的移动部件。

    有很多原因说明编码实践对WordPress的发展很重要。

    • WordPress网站很复杂。
    • 一行代码可以产生很大的影响。
    • 代码需要写得很好并经过良好的测试。
    • 高质量的代码更容易维护。
    • 优质的代码可以帮助提高性能。

    在你的发展规划过程中牢记这些要点,可以帮助你把注意力放在奖品上,可以这么说。

    WordPress开发流程改进技巧

    现在我们已经谈到了为什么拥有良好的代码是很重要的,让我们来看看一些提示,以帮助你改善你的WordPress工作流程的每一个项目。下面的每一个提示都将有助于确保你的WordPress代码是干净和优化的,这是你在2022年及以后应该优先考虑的。

    利用暂存环境

    暂存网站是你的真实网站的一个副本,你可以用它来测试变化,然后再在你的真实网站上做这些变化。这是一个有价值的工具,因为它允许你在不影响你的真实网站的情况下对变化进行试验。

    使用暂存网站有许多好处。

    1. 你可以在你的真实网站上进行修改之前测试这些修改。
    2. 你可以通过在一个暂存网站上测试来避免潜在的问题。
    3. 你可以确保你的改变是按预期进行的。
    4. 你可以避免你的实时网站的潜在停机时间。
    5. 你可以减少破坏你的直播网站的风险。

    实施版本控制

    版本控制是一个跟踪文件随时间变化的系统。这对WordPress的开发很有价值,因为它允许你跟踪变化,并在必要时恢复到早期版本。

    对大多数人来说,这意味着使用Git,它是一个流行的版本控制系统。如果你不熟悉,Git是一个免费和开源的分布式版本控制系统,旨在以速度和效率处理从小型到非常大的项目。

    Git

    Git

    当与一个大型的分布式团队一起工作时,它尤其有用。你最不想遇到的情况是,在你的WordPress安装中,你的functions.php文件有多个版本,所有的名字都略有不同,因为有很多人在同时进行修改。

    Git vs. GitHub

    Git是一个版本控制系统,是一个管理源代码历史的工具。GitHub是一家为使用Git的软件开发项目提供托管服务的公司。

    它们是两种不同的东西,但大多数人使用 “Git “一词来指代Git和GitHub

    安排自动备份

    WordPress开发中最重要的一个方面是备份。备份是至关重要的,因为它们允许你在出错时恢复你的网站。

    有很多方法可以实现自动备份,但最简单的方法之一是使用WordPress的备份插件。有许多伟大的备份插件,但我们推荐使用宝塔的自动备份计划。

    宝塔的自动备份计划任务

    宝塔的自动备份计划任务

    这个插件将每天自动创建你的WordPress网站的备份,并将其存储在一个外部服务器上。

    充分利用Linting的优势

    Linting是检查代码是否有错误的过程。这对WordPress的开发很有价值,因为它可以帮助你找到并修复你的代码中的错误。

    Sublime Text

    Sublime Text

    许多代码编辑器会自动做到这一点,但如果你想确定你的编辑器提供这一功能,可以考虑使用以
    下代码和文本编辑器之一。

    • Sublime Text:这个代码编辑器有很多功能,包括提示。
    • Atom:这个代码编辑器也有内置的打码功能。
    • Vim:这个文本编辑器也提供了提示功能以及许多其他功能。
    • Visual Studio Code:这个代码编辑器默认提供提示功能
    • PHPStorm:这是一个付费的开发环境,它提供了提示功能

    使用代码生成器

    代码生成器是一个可以为你自动生成代码的工具。这对WordPress的开发很有价值,因为它可以节省你的时间并帮助你避免错误。

    GenerateWP

    GenerateWP

    有许多代码生成器可用,但一些最流行的包括:

    • GenerateWP: 这个代码生成器可以为自定义帖子类型、分类法、元框等生成代码。
    • Hasty: 这个代码生成器可以为自定义帖子类型、分类法和字段生成代码
    • Nimbus Themes Code Generator: 这个代码生成器可以为自定义帖子类型、分类法和字段生成代码。

    使用WP-CLI

    WP-CLI是一个WordPress的命令行界面。这对WordPress的开发很有价值,因为它允许你从命令行管理你的WordPress网站。

    当您需要做一些重复性的或需要很多步骤的任务时,这尤其有用。例如,WP-CLI可以用来安装WordPress,创建文章和页面,安装插件和主题,以及更多。当您需要一次对多个网站进行修改时,它也很有帮助。

    使用一个WordPress开发框架

    WordPress开发框架是一个可以帮助你简化工作流程的工具。这对WordPress开发很有价值,因为它可以节省你的时间并帮助你避免错误。

    Bootstrap

    Bootstrap

    有许多WordPress开发框架,但一些最流行的框架包括:

    • Genesis: 这个来自StudioPress的框架是为了帮助你更快地建立WordPress网站。
    • Underscores: 这个来自Automattic的框架是为了帮助你快速开始开发WordPress主题
    • Foundation: 这个来自Zurb的框架旨在帮助你创建响应式的WordPress网站。
    • Bootstrap: 这个来自Twitter的框架是为WordPress网站创建响应式设计的一个超级有用的方法。

    使用任务运行器

    任务运行器是一个可以自动化任务的工具。这对WordPress开发很有价值,因为它可以节省你的时间并帮助你避免错误。它还允许你同时运行多个任务。

    Gulp

    Gulp

    有许多任务运行器可供选择,但一些最受欢迎的包括:

    • Gulp: 这个任务运行器可用于自动化任务,如CSS预处理、JavaScript刷新等。
    • Grunt: Grunt是一个Javascript任务运行器,它可以帮助你实现许多重复性任务的自动化。
    • Webpack: 这个任务运行器可用于自动化任务,如捆绑JavaScript文件等。

    立即熟悉Vue.js或React

    尽管你可能不会马上使用Vue.js或React,但现在熟悉这些框架很重要。这对WordPress的开发很有价值,因为随着时间的推移,它们正变得越来越流行,被使用得越来越多。

    Vue.js是一个JavaScript框架,允许你创建反应式用户界面。React是一个用于构建用户界面的JavaScript库。

    Vue.js和React都是WordPress开发的热门选择,因为它们速度快、重量轻、易于使用,是将WordPress变成无头CMS的关键。

    为什么花时间在WordPress开发流程规划上是至关重要的

    WordPress网站是复杂的,在开始任何项目之前,有一个良好的计划的工作流程是很重要的。通过花时间来计划你的工作流程,你可以节省时间并避免接下来的潜在问题。

    规划你的WordPress工作流程有很多好处。

    • 你可以通过了解需要做什么来节省时间。你可以通过提前
    • 计划来避免潜在的问题。
    • 你可以确保所有必要的任务都完成。你可以确保你的工作流程是高效和有效的。
    • 在将项目移交给合作者或客户时,你可以防止出现问题花时间在WordPress工作流程规划上是至关重要的,因为它可以节省你的时间并帮助你避免潜在的问题。

    通过花时间规划你的工作流程,你可以确保所有必要的任务都得到完成,确保你的工作流程是高效和有效的。

    理想的WordPress开发流程

    有许多方法来处理WordPress的工作流程,但有一些基本步骤应该包括在你的开发过程中。

    Step 1: 设置一个本地开发环境

    任何WordPress工作流程的第一步应该是建立一个本地开发环境。这很重要,因为它允许你在离线情况下在你的WordPress网站上工作,这可以节省时间和防止错误。

    设置本地开发环境的方法有很多,只是取决于你喜欢使用什么设置。

    通过一个完整的WordPress开发环境,并可一键推送至上线。

    你也可以同时在多个项目上工作,并在上线前合并变化。它还内置了A/B测试、插件兼容性测试和资源密集型测试,以帮助进一步确保你的构建结构合理。

    Step 2: 设置版本控制

    任何WordPress工作流程的第二步应该是设置版本控制。这很重要,因为它允许你跟踪你的代码的变化,并在必要时恢复到以前的版本。

    要做到这一点,你可以使用像Git这样的工具。这个过程看起来像下面这样

    1. 在GitHub上创建一个存储库

    要在GitHub上创建一个仓库,你可以使用以下步骤:

    1. 登录你的GitHub账户,点击右上角的+号。
    2. 从下拉菜单中选择New repository.
    3. 为你的资源库输入一个名称和描述,然后点击Create repository.

    在GitHub上创建一个仓库

    在GitHub上创建一个仓库

    2. 克隆版本库到你的本地开发环境

    具体步骤如下:

    1. 在你的仓库的GitHub页面,点击Clone or download按钮。
    2. Clone with HTTPs部分, 复制你的版本库的URL。
    3. 在你的开发环境中,打开终端,切换到你想克隆版本库的目录。
    4. 键入以下命令,替换你从Github复制的URL:
    git clone https://github.com/YOUR_USERNAME/YOUR_REPOSITORY.git
    git clone https://github.com/YOUR_USERNAME/YOUR_REPOSITORY.git
    git clone https://github.com/YOUR_USERNAME/YOUR_REPOSITORY.git

    这将克隆你的版本库到你的本地开发环境。

    3. 添加文件和提交修改

    1. 把你想用 Git 追踪的文件添加到你电脑上的仓库目录。
    2. 键入git add,后面跟着文件名,或者用git add . 来添加目录中的所有文件。
    3. 输入git commit -m,后面跟一个描述你所做修改的信息。
    4. 要把你的改动推送到Github,输入git push

    现在你可以继续在你的电脑上对文件进行修改,并把它们推送到 GitHub。当你想从Github获取最新版本的文件时,你可以使用git pull命令。

    如果你不使用GitHub,你也可以以类似的方式使用Bitbucket。

    Step 3: 本地开发

    在你建立了你的本地开发环境和版本控制之后,是时候开始在本地离线开发你的WordPress网站了。

    在本地开发时,你可以先在你的暂存网站上测试变化,然后再把它们推送到网上。这很重要,因为它允许你在影响到你的真实网站之前抓住任何错误或漏洞。

    Step 4: 利用WP-CLI

    WP-CLI是一个WordPress的命令行界面,允许您从终端管理您的WordPress网站。这对创建和管理用户、安装和更新插件等任务很有用。

    要安装WP-CLI,请遵循以下步骤:

    1. 下载WP-CLI phar文件。
    2. 将该文件移到你的PATH中的一个目录(例如,/usr/local/bin)。
    3. 将该文件重命名为wp
    4. 使该文件可执行(例如,chmod +x /usr/local/bin/wp)。
    5. 通过运行wp -version测试WP-CI是否已经安装

    从那里,您可以使用WP-CLI从命令行管理您的WordPress网站。关于命令的完整列表,您可以查看我们的WP-CLI v2深度指南

    Step 5: 用Gulp自动化你的工作流程

    Gulp是一个任务运行器,它允许你自动完成一些任务,如最小化CSS和JavaScript文件,编译Sass文件,以及更多。

    要使用Gulp,你首先需要在你的系统上全面安装它。要做到这一点,你需要Node.js、npm和Gulp。在Node.js中运行以下命令

    npm install gulp-cli -g
    npm install gulp-cli -g
    npm install gulp-cli -g

    一旦Gulp安装完毕,你可以在你的项目根部创建一个gulpfile.js文件。这个文件包含你的Gulp任务的代码。

    例如,下面的gulpfile.js文件包含一个用于最小化CSS文件的任务:

    var gulp = require(‘gulp’);
    var cleanCSS = require(‘gulp-clean-css’);
    gulp.task(‘minify-css’, function() {
    return gulp.src(‘src/*.css’)
    .pipe(cleanCSS({compatibility: ‘ie8’}))
    .pipe(gulp.dest(‘dist’));
    });
    var gulp = require(‘gulp’);
    var cleanCSS = require(‘gulp-clean-css’);
    gulp.task(‘minify-css’, function() {
    return gulp.src(‘src/*.css’)
    .pipe(cleanCSS({compatibility: ‘ie8’}))
    .pipe(gulp.dest(‘dist’));
    });
    var gulp = require('gulp');
    var cleanCSS = require('gulp-clean-css');
    gulp.task('minify-css', function() {
    return gulp.src('src/*.css')
    .pipe(cleanCSS({compatibility: 'ie8'}))
    .pipe(gulp.dest('dist'));
    });

    要运行这项任务,你可以使用以下命令:

    gulp minify-css
    gulp minify-css
    gulp minify-css

    Step 6: 使用Linting

    提示工具是静态代码分析工具,帮助你发现代码中的错误。对于我们这里的目的,我们使用Atom.io和以下的提示包

    • atom-beautify
    • atom-ternjs
    • linter
    • linter-eslint
    • linter-php
    • linter-sass-lint

    Atom.io

    Atom.io

    在你的终端中,导航到你想要lint的目录,运行以下命令:

    find . -name “*.js” -o -name “*.scss” | xargs eslint –fix
    find . -name “*.js” -o -name “*.scss” | xargs eslint –fix
    find . -name "*.js" -o -name "*.scss" | xargs eslint --fix

    这将使你的项目中所有的JavaScript和Sass文件都得到提示。

    如果你想对一个特定的文件进行lint,你可以运行以下命令:

    eslint –fix file-name.js
    eslint –fix file-name.js
    eslint --fix file-name.js

    将file-name.js替换为你要提示的文件的名称。

    Step 7: 使用CSS预处理程序

    CSS预处理器是一种工具,它允许你用不同的语言编写CSS,然后将其编译成CSS。两个最流行的CSS预处理器是Sass和Less。

    在本教程中,我们将使用Sass。要使用Sass,你首先需要安装Sass命令行工具。要做到这一点,请运行以下命令。

    gem install sass
    gem install sass
    gem install sass

    一旦安装了Sass,你可以使用以下命令将Sass文件编译成CSS。

    sass input.scss output.css
    sass input.scss output.css
    sass input.scss output.css

    用你的Sass文件的名称替换input.scss,用你想创建的CSS文件的名称替换output.css。

    如果你想观察你的Sass文件的变化,并自动将其编译成CSS,你可以使用以下命令:

    sass –watch input.scss:output.css
    sass –watch input.scss:output.css
    sass --watch input.scss:output.css

    Step 8: 使用部署插件

    部署插件是一种工具,它允许你轻松地将你的WordPress网站从本地开发环境部署到实时服务器上。

    有许多不同的工具可以用于这个目的,但我们推荐使用WP Pusher。WP Pusher是一个免费的部署插件,你可以在你的WordPress网站上使用

    WP Pusher

    WP Pusher

    要安装WP Pusher,首先,从WP Pusher网站下载ZIP文件。然后,登录你的WordPress网站,进入插件>安装插件。点击上传插件按钮,选择你刚刚下载的ZIP文件。一旦插件被安装和激活,你可以进入设置>WP Pusher来配置它。

    一旦WP Pusher配置好了,你就可以把WordPress插件和主题部署到你的实时服务器上,而完全不需要与FTP界面互动,也不需要搞乱你的WordPress数据库。

    Step 9: 利用WordPress Rest API

    WordPress REST API是一个强大的工具,它允许你从WordPress管理界面之外与你的WordPress网站互动。

    WordPress REST API可以用来为你的WordPress网站建立自定义解决方案。例如,你可以使用WordPress REST API为你的WordPress建立一个移动应用程序。网站或创建一个自定义的仪表板。

    要开始使用WordPress REST API,你需要通过WordPress命令行界面与它对接。我们最近发布了一个关于如何设置WordPress REST API的教程,可以指导你完成每个步骤。

    Step 10: 创建并遵循样式指南

    样式指南是一套用于编码和设计WordPress网站的指南。风格指南有助于确保你的代码是一致的和容易阅读的。

    有许多不同的样式指南,你可以在你的WordPress项目中使用。我们建议使用WordPress编码标准作为一个起点。然而,随着时间的推移,你可能会做许多修改和补充

    WordPress编码标准

    官方WordPress Codex的WordPress编码标准

    你所创建的任何风格指南都有可能一直在变化。但重要的一点是,它为你团队中的所有开发人员提供了一个确定的步骤集合和遵循的准则。

    基本上,你的风格指南应该是你的WordPress工作流程的书面形式。

    Step 11: 上线你的网站

    一旦你完成了上面所有的步骤,你的WordPress网站就可以被推送上线了。如果你使用像WP Pusher这样的部署插件,这个过程就像把你的代码推送到你的远程Git仓库一样简单。

    如果你没有使用部署插件或Git,你可以简单地从你的本地开发环境导出你的WordPress数据库,并将其导入你的实时服务器。你可以通过在你的WordPress管理仪表板上的 “工具”>”导出 “来做到这一点。

    然后,从导出选项中选择所有内容,点击下载导出文件按钮。一旦你有了你的数据库文件,你就可以通过在你的WordPress管理仪表板上的 “工具”>”导入 “把它导入到你的实时服务器。选择你刚刚导出的数据库文件,点击上传文件和导入按钮。

    你也可以使用FileZilla这样的FTP客户端将你的WordPress文件从你的本地开发环境手动转移到你的实时服务器。只需使用FTP连接到你的实时服务器,然后把你的WordPress文件拖放到
    public_html目录中。

    一旦你推送了你的WordPress网站,你可以花时间来测试一切,并确保一切都在正常工作。

    小结

    正如你所看到的,正确地创建一个WordPress开发工作流程有很多事情要做。但是,遵循这些步骤将有助于确保你的WordPress网站有条不紊,易于管理,并且运行顺畅。