Woocommerce:用于向产品图片添加自定义 alt 和 title 标签的代码有效,但会阻止产品管理页面
Woocommerce: code for adding custom alt and title tag to product images works, but brakes product admin page
建立一个 Woocommerce 商店,我想根据产品标题、标签和一个属性向产品图片添加自定义 alt 和标题标签。我将代码添加到 child functions.php,它似乎工作正常 - 无论是在前面还是在媒体管理器中,我都得到了我想要的 alt 和 title 标签,一切似乎都正常。
直到我尝试在管理区域编辑产品页面....它只加载了一半(主要内容框下面的整个部分都丢失了),显示没有添加产品标签,并且通过产品图像它说:
致命错误:第 112 行 functions.php 中的空值调用成员函数 get_tags()
我的代码在 child functions.php ($authertags beeing line 112):
// Change images alt and title tag
add_filter('wp_get_attachment_image_attributes', 'change_attachement_image_attributes', 20, 2);
function change_attachement_image_attributes($attr, $attachment) {
global $post, $product;
if ($post->post_type == 'product') {
$title = $post->post_title;
$authortags = strip_tags ($product->get_tags());
$editor = $product->get_attribute( 'pa_szerkesztette' );
$attr['alt'] = $title .' '. $authortags .' '. $editor;
$attr['title'] = $title .' '. $authortags .' '. $editor;
}
return $attr;
}
所有产品页面都一样。我想问题是剥离标签,我应该找到另一种方法将它们放入代码中,但我尝试过的任何方法都不起作用(我的 php 知识相当有限......).
任何人都可以帮助我,我做错了什么,如何修改代码才能完成这项工作?
谢谢
@helgatheviking 我昨天花了 cca。花了 10 分钟试图找出如何接受您的建议作为答案,直到我意识到评论在技术上不是答案...学习使用 Whosebug。
这是工作代码:
// Change images alt and title tag
add_filter('wp_get_attachment_image_attributes', 'change_attachement_image_attributes', 20, 2);
function change_attachement_image_attributes($attr, $attachment) {
global $post;
$product = wc_get_product( $post->ID );
if ($post->post_type == 'product') {
$title = $post->post_title;
$authortags = strip_tags ($product->get_tags());
$editor = $product->get_attribute( 'pa_szerkesztette' );
$attr['alt'] = $title .' '. $authortags .' '. $editor;
$attr['title'] = $title .' '. $authortags .' '. $editor;
}
return $attr;
}
建立一个 Woocommerce 商店,我想根据产品标题、标签和一个属性向产品图片添加自定义 alt 和标题标签。我将代码添加到 child functions.php,它似乎工作正常 - 无论是在前面还是在媒体管理器中,我都得到了我想要的 alt 和 title 标签,一切似乎都正常。
直到我尝试在管理区域编辑产品页面....它只加载了一半(主要内容框下面的整个部分都丢失了),显示没有添加产品标签,并且通过产品图像它说:
致命错误:第 112 行 functions.php 中的空值调用成员函数 get_tags()
我的代码在 child functions.php ($authertags beeing line 112):
// Change images alt and title tag
add_filter('wp_get_attachment_image_attributes', 'change_attachement_image_attributes', 20, 2);
function change_attachement_image_attributes($attr, $attachment) {
global $post, $product;
if ($post->post_type == 'product') {
$title = $post->post_title;
$authortags = strip_tags ($product->get_tags());
$editor = $product->get_attribute( 'pa_szerkesztette' );
$attr['alt'] = $title .' '. $authortags .' '. $editor;
$attr['title'] = $title .' '. $authortags .' '. $editor;
}
return $attr;
}
所有产品页面都一样。我想问题是剥离标签,我应该找到另一种方法将它们放入代码中,但我尝试过的任何方法都不起作用(我的 php 知识相当有限......).
任何人都可以帮助我,我做错了什么,如何修改代码才能完成这项工作? 谢谢
@helgatheviking 我昨天花了 cca。花了 10 分钟试图找出如何接受您的建议作为答案,直到我意识到评论在技术上不是答案...学习使用 Whosebug。
这是工作代码:
// Change images alt and title tag
add_filter('wp_get_attachment_image_attributes', 'change_attachement_image_attributes', 20, 2);
function change_attachement_image_attributes($attr, $attachment) {
global $post;
$product = wc_get_product( $post->ID );
if ($post->post_type == 'product') {
$title = $post->post_title;
$authortags = strip_tags ($product->get_tags());
$editor = $product->get_attribute( 'pa_szerkesztette' );
$attr['alt'] = $title .' '. $authortags .' '. $editor;
$attr['title'] = $title .' '. $authortags .' '. $editor;
}
return $attr;
}