在编辑页面上执行的短代码导致的 Wordpress 错误
Wordpress errors from shortcodes being executed on edit page
我正在写一个 wordpress 插件。
我注意到我的调试日志中出现了很多 PHP 错误,因为我的短代码正在管理编辑页面上执行,因此相关数据不可用,因为短代码正在动态加载基于用户前端的数据。例如我有一个函数:
function myFunction_availability() {
if (is_admin()) return; // tried adding this but still get the issue
$product = $this->myFunction_get_current_product();
return "<div class='product-availability'>{$product->availability}</div>";
}
在前端工作正常,但每当我从管理区域加载编辑页面时,我都会在日志中看到:
PHP Warning: Attempt to read property "availability" on null in /home/vagrant/yodahwp/wp-content/plugins/yodah/class.yodah.php on line 1602
正如您从我的代码中看到的那样,我尝试添加 is_admin()
以在查看管理页面(即编辑 post 页面)时退出该功能,但这似乎不起作用.
有没有 wordpress 高手对此有答案?我有点惊讶在管理编辑页面上执行简码,还是我遗漏了什么?!
谢谢
这是一个老问题。通常,在使用可视化构建器时会发生这种情况。
一种解决方案是编写一个条件来检查产品是否存在。
如果使用 woocommerce 你可以试试:
$product = wc_get_product( get_the_ID() );
if($product){
//continue
}
在您的情况下,您应该编辑 myFunction_get_current_product()
方法并在那里验证产品是否存在。
我正在写一个 wordpress 插件。
我注意到我的调试日志中出现了很多 PHP 错误,因为我的短代码正在管理编辑页面上执行,因此相关数据不可用,因为短代码正在动态加载基于用户前端的数据。例如我有一个函数:
function myFunction_availability() {
if (is_admin()) return; // tried adding this but still get the issue
$product = $this->myFunction_get_current_product();
return "<div class='product-availability'>{$product->availability}</div>";
}
在前端工作正常,但每当我从管理区域加载编辑页面时,我都会在日志中看到:
PHP Warning: Attempt to read property "availability" on null in /home/vagrant/yodahwp/wp-content/plugins/yodah/class.yodah.php on line 1602
正如您从我的代码中看到的那样,我尝试添加 is_admin()
以在查看管理页面(即编辑 post 页面)时退出该功能,但这似乎不起作用.
有没有 wordpress 高手对此有答案?我有点惊讶在管理编辑页面上执行简码,还是我遗漏了什么?!
谢谢
这是一个老问题。通常,在使用可视化构建器时会发生这种情况。
一种解决方案是编写一个条件来检查产品是否存在。
如果使用 woocommerce 你可以试试:
$product = wc_get_product( get_the_ID() );
if($product){
//continue
}
在您的情况下,您应该编辑 myFunction_get_current_product()
方法并在那里验证产品是否存在。