Search code examples
phpwordpressshortcodediamond-problem

Shortcode Not working in wordpress main content fild


I use a shortcode and by this shortcode i want The main title , A thumbnail ,some content and then a permalink of my post . But using this short code Wordpress show the full content no Title ,Thumbnail, and permalink. What should i do now. The photo of my style (Note: This is a old format of Shortcode ) Please Help Me.

This is the code Into Functions.php

function category_post_shortcode($atts){
    extract(shortcode_atts(array(
    'title' => '',
    'link' => '',
    'category' => '',
    ), $atts, 'category_post'));

    $q = new WP_Query(
    array( 'category' => $category, 'post_per_page' => '3', 'post_type' => 'post')
    );
    $list = '<div class="your_class"><h2>'.$title.'</h2> <a href="'.$link.'">more</a>';

    while($q->have_posts()) : $q->the_post();
    $id = get_the_ID();

    $post_excerpt = get_post_meta($id, 'post_excerpt', true);
    $post_thumbnail=get_the_post_thumbnail( $post->ID,'post-thumbnail' );
    $list .= '


                  <div class="single-cat-post">
                      '.$post_thumbnail.'
                      <h3>'.get_the_title().'</h3>
                      <P>'.$post_excerpt.'</p>
                      <a href="'.get_permalink().'">read more</a>
                 </div>



        ';
endwhile;
$list.= '</div>';
wp_reset_query();
}
add_shortcode('category_post', 'category_post_shortcode');      

This is Into my Index.php

 <?php if(have_posts()) : ?><?php while(have_posts()) : the_post (); ?>
        <?php the_content(); ?>
        <?php endwhile; ?>

         <?php else : ?>
         <h3><?php _e('404 Error: Not Found'); ?></h3>
         <?php endif; ?>

This is for Thumbnail Support

add_theme_support( 'post-thumbnails' );
add_image_size( 'post-image', 145,100, true);

My Shortcode

[category_post title="This is a testing post" category="New" link="#"]

Solution

  • Please check this code I have done bit of changes in the code .

    function category_post_shortcode($atts){
    extract(shortcode_atts(array(
        'title' => 'true',
        'link' => 'true',
        'category' => '',
        ), $atts));
    $q = new WP_Query(
    array( 'category_name' => $category, 'posts_per_page' => '3','ignore_sticky_posts' => 1));
    $list ='';
    $list.= '<div class="your_class">';
    while($q->have_posts()) : $q->the_post();
        $list .= '<div class="single-cat-post">';
    
        /*--------------Thumbnail ----------*/
        $list .= '<div class="thumbnail-cat-post">';
        $list.=  get_the_post_thumbnail() ;
        $list .= '</div>';
        /*--------------Thumbnail end ----------*/
    
        /*------------Title start ------------*/
        if ( $title == 'true' )
        {
            $list .= '<div class="title-cat-post">';
            $list.= the_title('<h3 class="ss">','</h3>', false);
            $list .= '</div>';
        }
        /*------------title End ------------*/
    
        /*--------------excerpt start ----------*/
        $list .= '<div class="excerpt-cat-post">';
        $list.= '<p>'.get_the_excerpt ().'</p>';
        $list .= '</div>';
        /*-----------excerpt end-------------*/
    
        /*--------------Permalink start----------*/
        if ( $link == 'true' )
        {
            $list .= ' <a href="'.get_permalink().'">read more</a>';
        }
        /*----------------Permalink end --------*/
    
        $list.= '</div>';/*----------Single-cat-post end--------------*/
    endwhile;
    $list.= '</div>'; /*-------------your_class end-----------*/
    wp_reset_query();
    return $list;
    }
    add_shortcode('category_post', 'category_post_shortcode'); 
    

    Short code : [category_post title="true" category="markup" link="true"]