Jut更新了WordPress和Woocommerce到最新版本。不幸的是,我得到了一个500内部服务器在以下行的某处:
add_action( 'woocommerce_before_shop_loop_item', 'attribute_img_loop', 20 );
function attribute_img_loop() {
global $post;
$attribute_names = array( 'pa_sertifikalar' ); // Add attribute names here and remember to add the pa_ prefix to the attribute name
// echo '<script>alert('.$attribute_names.');</script>';
foreach ( $attribute_names as $attribute_name ) {
$taxonomy = get_taxonomy( $attribute_name );
if ( $taxonomy && ! is_wp_error( $taxonomy ) ) {
$terms = wp_get_post_terms( $post->ID, $attribute_name );
$terms_array = array();
if ( ! empty( $terms ) ) {
echo '
<table class="combs" cellspacing="0">
<tbody>
<tr>
<td>
<ul class="nm-variation-control ul-control-certificate">';
foreach ( $terms as $term ) {
$thumb_id = get_woocommerce_term_meta( $term->term_id, 'thumbnail_id', true );
$image_id = absint( get_term_meta( $term->term_id, 'nm_pa_image_thumbnail_id', true ) );
$img_src = ( $image_id ) ? wp_get_attachment_url( $image_id ) : '';
$archive_link = get_term_link( $term->slug, $attribute_name );
$full_line = '<li><div class="lcrap"><img id="c'. $image_id .'" data-src="'. $img_src .'" alt="" class="lazyload" alt="'. $term->name .'" /></div></li>';
array_push( $terms_array, $full_line );
}
// echo $taxonomy->labels->name . ' ' . implode( $terms_array, '-- ' );
echo implode( $terms_array, '');
echo '</ul>
</td>
</tr>
</tbody>
</table>';
}
}
}
}
刚刚添加了echo '<script>alert('.$attribute_names.');</script>';
来检查$attribute_names = array( 'pa_sertifikalar' );
部分的输出,看到它返回一个
function Array() {
[native code]
}
**知道这是怎么回事吗?**使用PHP 8.1
1条答案
按热度按时间zpjtge221#
根据评论中的讨论,修复是将
implode( $terms_array, '')
更改为implode('', $terms_array)
。过去,这些参数的顺序并不重要,但是从PHP 7.4开始,首先传递数组就被弃用了,并且在PHP 8.0中被完全删除。