web-dev-qa-db-ja.com

ショートコードが機能しないこととthe_content()との関係

Reference Post (私はここでも投票されました。)

私のショートコードは私のカスタムテーマでは動作していませんでしたが、同じショートコードは15年で使用されたときには動作していました。

Googleで調べたところ、the_contentを正しく使用していないことに関連していることがわかりました。

  1. https://kb.yoast.com/kb/shortcodes-not-rendering/ /
  2. https://wordpress.org/support/topic/shortcodes-not-working-custom-theme/

Yoastで提案されている解決策を適用した→

それは私がから変わったことを意味します

<?php the_content(); ?>

<?php echo apply_filters( 'the_content', $post->post_content ); ?>

それでも、ショートコードは機能していません。

修正プログラムは何ですか?

このコードはsingle.phpにあります。→

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
                            <?php $post_id = get_the_ID(); ?>
                            <?php get_template_part('content',get_post_format()); ?>
                        <?php endwhile; ?>
                        <?php endif; ?>

そしてcontent.phpで→

<?php the_content(); ?>

enter image description here 

ライブページ→

enter image description here 

フルショートコード→

function simplisto_the_image($atts) {
    $atts = shortcode_atts( array(
        'to' => 'https://pics.wikifeet.com/Melania-Trump-Feet-720891.jpg'
    ), $atts);
    $output = '<div class="lazyimg">';
            $output .= '<img class="lazyimg-popup" src="'.$atts['to'].'" alt="The First Caption" width="100%" height="auto">';
        $output .= '<i class="fa fa-expand" aria-hidden="true"></i>';
    $output .= '</div>';
    return $output;
}

function register_shortcodes(){
   add_shortcode('simage', 'simplisto_the_image');
}

add_action( 'init', 'register_shortcodes');
1
The WP Novice

簡潔な答え(iPhoneで電車で書く)は、メモリからcontent.phpの外部で宣言された変数は利用できないので、get_template_part()をWordPress以外のinclude()と同等に変更してみます。

2
onebc