wordpress - Wordpress:调用未定义的函数 wp_embed_register_handler()
问题描述
我有一个仍在开发中的 Wordpress 网站。我一直在这个网站上工作到 2021 年 2 月,并且由于 COVID 危机而持有所有作品。到那时为止,网站正在运行。现在我已经恢复了我的工作,只是在浏览网站。但现在,网站抛出错误“致命错误:未捕获错误:调用未定义函数 wp_embed_register_handler() ”
我还跨越了该函数存在的文件“wp-includes/embed.php”文件,并且在调用它之前已经定义了函数。您可以看到附加的整个错误跟踪的屏幕截图。
我不是在所有页面上都收到此错误,而是在几乎所有页面上都收到此错误。即使我在过去 3-4 个月内没有在网站上碰过任何东西,我也无法理解为什么会出现此错误。当我最后一次工作时,它工作得很好。
有人可以帮忙吗?我在 Wordpress 方面不是很有经验,但有中级知识。
提前致谢
解决方案
看起来问题在于与 WordPress 文件的主题兼容性。我建议您更新主题和 WordPress 核心文件。
第二个选项是仅在不需要时禁用 Wp-Embed。通过将其放在主题的 function.php 中来使用此代码:
function disable_embeds_code_init() {
// Remove the REST API endpoint.
remove_action( 'rest_api_init', 'wp_oembed_register_route' );
// Turn off oEmbed auto discovery.
add_filter( 'embed_oembed_discover', '__return_false' );
// Don't filter oEmbed results.
remove_filter( 'oembed_dataparse', 'wp_filter_oembed_result', 10 );
// Remove oEmbed discovery links.
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
// Remove oEmbed-specific JavaScript from the front-end and back-end.
remove_action( 'wp_head', 'wp_oembed_add_host_js' );
add_filter( 'tiny_mce_plugins', 'disable_embeds_tiny_mce_plugin' );
// Remove all embeds rewrite rules.
add_filter( 'rewrite_rules_array', 'disable_embeds_rewrites' );
// Remove filter of the oEmbed result before any HTTP requests are made.
remove_filter( 'pre_oembed_result', 'wp_filter_pre_oembed_result', 10 );
}
add_action( 'init', 'disable_embeds_code_init', 9999 );
function disable_embeds_tiny_mce_plugin($plugins) {
return array_diff($plugins, array('wpembed'));
}
function disable_embeds_rewrites($rules) {
foreach($rules as $rule => $rewrite) {
if(false !== strpos($rewrite, 'embed=true')) {
unset($rules[$rule]);
}
}
return $rules;
}
推荐阅读
- c# - Ef core:执行 MaxAsync 时序列不包含任何元素
- c# - 通过纯c#代码生成App.Config文件的最简单方法是什么
- mysql - MySQL 查询:如何获取按最新提交日期排序的热门帖子
- java - 运行 netlogo-headless.sh 时无法识别选项的来源?
- arrays - Angular 6 - 将 JSON 转换为数组
- python - 如何只导入 __init__.py 的一部分?
- laravel - Laravel - 如何关联两个集合,如 Eloquent 方法“belongsToMany”和“with”
- ruby - Ruby 或 Bash 或 Grep 正则表达式不适用于“?” 即前一个字符出现 0 次或 1 次
- sql - 更新具有相同主键的字段的值
- ruby-on-rails - 在 Rails 中查询 - 查询中的双引号字符串