FlexSlider与WordPress库
如何让FlexSlider与WordPress图库一起工作FlexSlider与WordPress库,wordpress,flexslider,Wordpress,Flexslider,如何让FlexSlider与WordPress图库一起工作 我正在创建一个自定义主题,理想情况下,我希望主题中的每个图库都能自动转换为FlexSlider图像旋转器,而无需使用其他插件。我知道你说过你不想使用其他插件,但我建议试用带有图库扩展的高级自定义字段插件 有了它,使用您自己的标记创建自定义库非常容易 它确实解决了我集成壁画灯箱的问题,就像我想要的那样。只是一些示例输出代码,向您展示如何使用自定义字段: <div id="slider" class="flexslider">
我正在创建一个自定义主题,理想情况下,我希望主题中的每个图库都能自动转换为FlexSlider图像旋转器,而无需使用其他插件。我知道你说过你不想使用其他插件,但我建议试用带有图库扩展的高级自定义字段插件 有了它,使用您自己的标记创建自定义库非常容易 它确实解决了我集成壁画灯箱的问题,就像我想要的那样。只是一些示例输出代码,向您展示如何使用自定义字段:
<div id="slider" class="flexslider">
<ul class="slides">
<?php foreach( $images as $image ): ?>
<li>
<img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />
<p class="flex-caption"><?php echo $image['caption']; ?></p>
</li>
<?php endforeach; ?>
</ul>
-
“alt=”“/>
看看T31对类似问题的回答:
您将要做的是重写核心库_短代码函数(wp includes/media.php的第702行)使用返回的
$output
,将他的代码或类似的代码放在主题的functions.php中。我知道这已经6年了,但我最近需要在WP 5.0+安装中执行此操作,并且由于块编辑器aka.Gutenberg,这比预期的要困难
我通过使用parse_block
和render_block
手动重新渲染内容,解决了这个问题,可能在性能上受到了重大影响(如果我错了,请纠正我)
这会出现在主题的functions.php
中:
<?php
function filter_gallery_blocks($content) {
global $post;
if ( has_blocks( $post->post_content ) ) {
$blocks = parse_blocks( $post->post_content );
$new_content = '';
foreach ( $blocks as $key => $block ) {
if ( $block['blockName'] === 'core/gallery' ) {
$rendered_block = render_block($block);
// do whatever replacement you like with the block HTML
// in case of Flexslider I needed the following 3 lines
$rendered_block = str_replace('<figure>', '', $rendered_block);
$rendered_block = str_replace('</figure>', '', $rendered_block);
$rendered_block = str_replace('wp-block-gallery', 'wp-block-gallery slides', $rendered_block);
$new_content .= '<div class="gallery">'.$rendered_block.'</div>';
continue;
}
// else just pass through
$rendered_block = render_block($block);
$new_content .= $rendered_block;
}
return $new_content;
}
}
add_filter('the_content', 'filter_gallery_blocks', -5);
?>