我在Elementor中使用自定义外观修改了我的posts小部件,以便显示multiple badges 代码如下:
/* MULTIPLE BADGES ON POST */
/* --- */
add_action( \'elementor/widget/posts/skins_init\', function( $widget ) {
class cards_multi_badge_skin extends \\ElementorPro\\Modules\\Posts\\Skins\\Skin_Cards {
protected function render_badge() {
$taxonomy = $this->get_instance_value( \'badge_taxonomy\' );
if ( empty( $taxonomy ) ) {
return;
}
$terms = get_the_terms( get_the_ID(), $taxonomy );
if ( ! is_array( $terms ) ) {
return;
}
?><div class="elementor-post__badges"><?php
foreach( $terms as $term ) : ?>
<div class="elementor-post__badge"><?php echo $term->name; ?></div>
<?php endforeach; ?>
</div>
<?php
}
public function get_id() {
return \'cards_multi_badge\';
}
public function get_title() {
return __( \'Cards Multi Badge\', \'elementor-pro\' );
}
}
// register the skin to the posts widget
$widget->add_skin( new cards_multi_badge_skin( $widget ) );
} );
这将导致以下结果:
现在,我也在为
archive 使用以下代码在Elementor中发布小部件:
/* MULTIPLE BADGES ON ARCHIVE POST */
/* --- */
add_action( \'elementor/widget/archive-posts/skins_init\', function( $widget ) {
class cards_multi_badge_skin extends \\ElementorPro\\Modules\\Archive_Posts\\Skins\\Skin_Cards {
protected function render_badge() {
$taxonomy = $this->get_instance_value( \'badge_taxonomy\' );
if ( empty( $taxonomy ) ) {
return;
}
$terms = get_the_terms( get_the_ID(), $taxonomy );
if ( ! is_array( $terms ) ) {
return;
}
?><div class="elementor-post__badges"><?php
foreach( $terms as $term ) : ?>
<div class="elementor-post__badge"><?php echo $term->name; ?></div>
<?php endforeach; ?>
</div>
<?php
}
public function get_id() {
return \'cards_multi_badge\';
}
public function get_title() {
return __( \'Cards Multi Badge\', \'elementor-pro\' );
}
}
// register the skin to the posts widget
$widget->add_skin( new cards_multi_badge_skin( $widget ) );
} );
但是,此代码不起作用?谁知道我做错了什么?