编辑页面上执行的短代码导致Wordpress错误
我正在写一个wordpress插件 我在调试日志中注意到,抛出了很多PHP错误,因为我的短代码正在管理编辑页面上执行,因此相关数据不可用,因为短代码正在加载基于用户前端的动态数据。例如,我有一个函数:编辑页面上执行的短代码导致Wordpress错误,wordpress,wordpress-shortcode,Wordpress,Wordpress Shortcode,我正在写一个wordpress插件 我在调试日志中注意到,抛出了很多PHP错误,因为我的短代码正在管理编辑页面上执行,因此相关数据不可用,因为短代码正在加载基于用户前端的动态数据。例如,我有一个函数: function myFunction_availability() { if (is_admin()) return; // tried adding this but still get the issue $product = $this->myFunction_g
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>";
}
正如您从我的代码中看到的,我尝试添加is_admin()
,以便在查看管理员页面(即编辑帖子页面)时退出函数,但这似乎不起作用
有没有wordpress高手对此有答案?我有点惊讶,短代码是在管理编辑页面上执行的,还是我遗漏了什么
谢谢这是个老问题。通常,在使用可视化构建器时会发生这种情况 一种解决方案是写一个条件来检查产品是否存在 如果使用woocommerce,您可以尝试:
$product = wc_get_product( get_the_ID() );
if($product){
//continue
}
在您的情况下,您应该编辑
myFunction\u get\u current\u product()
方法,并在那里验证产品是否存在。您的问题缺乏详细信息。。然而。。。product没有定义,所以如果product为null,您的函数应该退出。您好,感谢您确认这一点,在更高的级别上,我想知道为什么wordpress在加载管理编辑页面时运行短代码,而不是其他管理页面。我想答案是这是设计的,不是可以改变的?也许短代码的最佳实践是通过一个只在前面加载的钩子加载短代码?我未能在文件中找到任何明确的答案。。非常感谢
$product = wc_get_product( get_the_ID() );
if($product){
//continue
}