我创建了一个包含链接列表的短代码。问题是 - 插入短代码之后的博客文章内容最终在短代码包装div(代码中的.customwrap和.customcontainer)内部。链接列表实际上是具有自定义分类的自定义帖子类型。显示的分类法由一个短代码属性(放置)确定。还有动态类,由另一个属性(位置)确定。
这是代码。
function custom_links_code($atts) {
ob_start();
extract(shortcode_atts(array(
'placement' => 'test',
'position' => 'horizontal'
), $atts));
?>
<!-- content following shortcode ends up inside these divs -->
<div class="customwrap <?php echo $atts['position']; ?>">
<div class="customcontainer">
<?php
$args = array(
'post_type' => 'links',
'post_status' => 'publish',
'tax_query' => array(
array(
'taxonomy' => 'Placements',
'field' => 'slug',
'terms' => $atts['placement']
)
)
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
?>
<a href="<?php echo get_post_meta(get_the_ID(), 'link-url', true); ?>">
<?php the_title(); ?>
</a>
<?php
endwhile;
wp_reset_query();
return ob_get_clean();
}
echo '</div></div>';
add_shortcode('custom-links', 'custom_links_code');
答案 0 :(得分:1)
看起来您需要将结束div移动到您的函数中:
...
<?php the_title(); ?>
</a>
<?php endwhile; ?>
</div></div>
<?php // ^^---- This closes our divs ?>
wp_reset_query();
return ob_get_clean();
}
add_shortcode('custom-links', 'custom_links_code');