我需要删除the_content()中的短代码并将其插入另一个html结构中。
例如,如果帖子是
<h1>Title</h1>
<p>This is the content [shortcode id="50"]</p>
我需要渲染为
<h1>Title</h1>
<p>This is the content</p>
<div class="new-div">
[shortcode id="50"]
</div>
这是主题中的functions.php内的代码。
它删除了所有内容,而不仅仅是短代码。
function gallery_exists() {
global $post;
$content = $post->post_content;
if( is_a( $post, 'WP_Post' ) && has_shortcode( $content, 'gallery') ) {
$pattern = get_shortcode_regex();
if ( preg_match_all( '/'. $pattern .'/s', $content, $matches ) ) {
function remove_gallery() {
$gallery = $matches[0][0];
$content = strip_shortcodes($content,$gallery);
$content = unescape_invalid_shortcodes( $content );
return $content;
}
add_filter('the_content', 'remove_gallery');
}
}
}
add_action('wp','gallery_exists');