WordPress Advanced Topics高级主题插件开发

WordPress Advanced Topics高级主题插件开发

解锁WordPress 主题和插件的高级开发技术。学习创建自定义解决方案、优化性能。这是一门专业的 wordpress 课程,用于学习电子商务网站开发、电子学习网站开发、论坛制作、Elementor 用途等。

WordPress 插件和定制

管理插件- 如何安装和管理 WordPress 插件

WordPress 插件- 在哪里可以找到 WordPress 插件

插件资源- WordPress 插件开发人员的综合资源列​​表

模板- 与主题和模板相关的资源综合列表,包括如何自定义它们以及如何创建它们

照片博客和画廊- 如何将 WordPress 用作照片博客或照片画廊

播客- 如何使用 WordPress 播客音频和视频内容

使用图片- 如何在 WordPress 博客中使用图片

WordPress 高级技术

您的语言版本的 WordPress - 如何在 WordPress 中查找和安装非英语博客的说明

导入内容- 如何从以前的博客软件导入帖子和评论

编辑文件- 如何在 WordPress 管理菜单中编辑主题和其他 WordPress PHP 文件

使用 Javascript - 描述如何以及为什么在主题和帖子中使用 JavaScript

AJAX - AJAX 技术的描述及其在 WordPress 中的使用方式

WordPress Cookies - WordPress 如何使用 Cookies 的说明

在您的帖子中编写代码- 如何将编程和 HTML 代码放入帖子中,并使其按您期望的方式格式化

WordPress Feeds - 介绍 WordPress 中的 RSS 和其他类型的内容 feed,并链接到其他 feed 相关资源

使用永久链接- 如何在 WordPress 中自定义永久链接结构

WordPress 中的 XML-RPC 支持- 关于 WordPress 中 XML-RPC 支持的简短说明,允许您使用外部程序发布帖子

启用发送引荐来源- 如何修复 WordPress 管理面板中的浏览器问题,该问题与浏览器未发送“引荐页面”信息有关

Nginx - 使用 Nginx Web 服务器为 WordPress 网站提供服务,这是 Apache Web 服务器的替代方案

防范垃圾邮件发送者- 如何保护 WordPress 网站上的电子邮件地址不被垃圾邮件发送者窃取

故障排除- WordPress 故障排除资源综合列表

开发人员文档- 主题、插件和 WordPress 核心开发人员的资源

常见问题解答高级主题- 常见问题解答

WordPress 语义- WordPress 的术语

技术文章- 有关 WordPress 的主要外部参考资料列表

服务器和数据库信息

查找服务器信息- 如何获取有关 WordPress 使用的服务器和软件版本的信息

数据库描述- WordPress 数据库中表的描述

切换到 PHP5 - 关于从以前版本的 PHP 迁移到 PHP5

将 WordPress 与您的网站集成- 如何将 WordPress 集成到您的网站的其他部分

迁移 WordPress - 如何将您的 WordPress 博客迁移到新位置

更改网站 URL - 如何更改 WordPress 博客的 URL

升级 WordPress - 如何升级 WordPress 到新版本

WordPress 高流量技巧- 如何为大量访客做好准备,并评估其是否有效

WordPress 优化- 针对高流量网站优化 WordPress 的概述

强化 WordPress - WordPress 安全性讨论

phpMyAdmin - MySQL phpMyAdmin 管理工具的简要描述及其获取方式

备份数据库- 如何备份 WordPress 数据库

从备份恢复数据库- 如何恢复 WordPress 数据库的先前备份

UNIX Shell 技能- 登录到安装 WordPress 的服务器时可以使用的基本 UNIX 命令

使用 Subversion 安装/更新 WordPress - 如何从源代码库下载旧版本和 WordPress 的当前开发版本

运行 WordPress 的开发副本- 使用相同的 WordPress 数据库(文章、类别、设置等)运行两个 WordPress 副本的技巧

MacOS X 本地镜像- 在 MacOS X 上设置 WordPress 博客的本地镜像

删除操作和过滤器

有时您想从另一个插件、主题甚至 WordPress Core 注册的钩子中删除回调函数。要从钩子中删除回调函数,您需要调用remove_action()或 remove_filter(),具体取决于回调函数是作为操作还是过滤器添加。

remove_action()传递给/ 的参数 必须与传递给注册它的/的remove_filter()参数相同,否则删除将不起作用。add_action()add_filter()

要成功移除回调函数,必须在回调函数注册后执行移除操作。执行顺序很重要。

例子

假设我们想通过删除不必要的功能来提高大主题的性能。

让我们通过查看来分析主题的代码functions.php。


function wporg_setup_slider() {

 // ...

}

add_action( 'template_redirect', 'wporg_setup_slider', 9 );

这个wporg_setup_slider函数添加了一个我们不需要的滑块,它可能会加载一个巨大的 CSS 文件,然后加载一个 JavaScript 初始化文件,该文件使用了 1MB 大小的自定义库。我们可以去掉它。

wporg_setup_slider由于我们希望在回调函数注册(执行)后挂入 WordPress,functions.php因此最好的机会就是after_setup_theme挂接。


function wporg_disable_slider() {

 // Make sure all parameters match the add_action() call exactly.

 remove_action( 'template_redirect', 'wporg_setup_slider', 9 );

}

// Make sure we call remove_action() after add_action() has been called.

add_action( 'after_setup_theme', 'wporg_disable_slider' );

删除所有回调

remove_all_actions()您还可以使用/删除与钩子关联的所有回调函数remove_all_filters()。

确定当前钩子

有时您想在多个钩子上运行一个动作或过滤器,但根据当前调用它的钩子而采取不同的行为。

您可以使用 current_action()/current_filter()来确定当前的 Action / Filter。


function wporg_modify_content( $content ) {

 switch ( current_filter() ) {

 case 'the_content':

 // Do something.

 break;

 case 'the_excerpt':

 // Do something.

 break;

 }

 return $content;

}

 

add_filter( 'the_content', 'wporg_modify_content' );

add_filter( 'the_excerpt', 'wporg_modify_content' );

检查钩子运行了多少次

一些钩子在执行过程中会被调用多次,但您可能只希望回调函数运行一次。

在这种情况下,您可以使用did_action()检查钩子运行了多少次。


function wporg_custom() {

// If save_post has been run more than once, skip the rest of the code.

if ( did_action( 'save_post' ) !== 1 ) {

return;

}

// ...

}

add_action( 'save_post', 'wporg_custom' );

使用“all”钩子进行调试

如果你希望每个钩子都触发一个回调函数,可以将其注册到all钩子上。这在调试时很有用,可以帮助确定特定事件何时发生或页面何时崩溃。


function wporg_debug() {

 echo '<p>' . current_action() . '</p>';

}

add_action( 'all', 'wporg_debug' );

 

顶部