1

Reference Post (I was even downvoted here.)

My short code was not working on my custom theme, but the same short code, when used in twenty fifteen, was working.

I researched over google and found that it was something related to not using the_content correctly.

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

I applied the solution suggested in the Yoast →

that means I changed from

<?php the_content(); ?>

TO

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

But still, the shortcodes are not working.

what is the working fix?

I have this code in 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; ?>

and in content.php →

<?php the_content(); ?>

enter image description here

ON LIVE PAGE→

enter image description here

FULL SHORTCODE →

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');
13
  • Try echo do_shortcode( get_the_content() );
    – user125500
    Commented Aug 8, 2017 at 18:47
  • 1
    You said you changed the_content() to apply_filters, but then you say content.php has the_content().... it should have apply_filters no?
    – gdaniel
    Commented Aug 8, 2017 at 19:12
  • 1
    what is the exact full code of your shortcode function? does the same problem exist when you use one of the generic shortcodes like [gallery]?
    – Michael
    Commented Aug 8, 2017 at 21:58
  • 1
    ps: are you using any postformat for the post?
    – Michael
    Commented Aug 8, 2017 at 22:03
  • 1
    Can you try to replace function register_shortcodes()...to the end with just add_shortcode('simage', 'simplisto_the_image');
    – rudtek
    Commented Aug 8, 2017 at 22:25

1 Answer 1

2

Excuse brief answer (writing on train in iPhone) but I would try changing get_template_part() to its non-WordPress include() equivalent as, from memory, variables declared outside your content.php won't be available otherwise.

4
  • @Jack Johansson Any clue?
    – WordCent
    Commented Aug 8, 2017 at 20:48
  • even if I am trying this in content.php → <?php echo do_shortcode("[simage]"); ?> still it is not generating the DESIRED OUTPUT. there is something else that is fundamentally missing in the theme. I have no clue what is that?
    – WordCent
    Commented Aug 8, 2017 at 21:23
  • Please guide me one step further sir. Please help.
    – WordCent
    Commented Aug 9, 2017 at 14:17
  • I have accepted the answer.
    – WordCent
    Commented Oct 5, 2017 at 2:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.