I’m just starting to learn WP coding stuff. Please don’t be too hard on me.
I always see most of the answers for this question are something like or close to this:
$thumbnail_id = get_post_thumbnail_id( $post->ID ); $alt = get_post_meta($thumbnail_id, '_wp_attachment_image_alt', true); <img src="<?php the_post_thumbnail_url('post-thumbnails-home-page'); ?>" alt="<?php echo $alt; ?>" />
I find it hard to convert <?php echo $alt; ?>
to something that fits to my code:
// Featured Items function display_featured_item($atts, $before = '', $sep = '', $after = '') { $atts = shortcode_atts(array( 'post_id' => 0, ), $atts, 'display-featured-item'); $id = $atts['post_id']; $tag_list = get_the_term_list( $id, 'post_tag', $before, $sep, $after ); if ($id == '0') return ''; $data = '<div class="promotion-wrapper">'; $data .= '<h2><a href="' . get_permalink($id) . '">' . get_the_title($id) . '</a></h2>'; $data .= '<p>' . get_the_excerpt($id) . '</p>'; $data .= '<p><a href="' . get_permalink($id) . '" class="reg-link">Learn more</a></p>'; $data .= '<p><img src="' . get_the_post_thumbnail_url($id, 'full') . '" alt=""/></p>'; $data .= '<p>' . apply_filters( 'the_tags', $tag_list, $before, $sep, $after, $id ) . '</p>'; $data .= '</div>'; return $data; } add_shortcode('display-featured-item', 'display_featured_item');
I’ve been searching all over the internet for a couple of hours now and hoping to find answers that could possibly work to my code but I still got no luck.
If some of you know how to do this, it will definitely make my day. TIA! 🙂
Advertisement
Answer
After checking my other code snippets, I noticed this different way of using variables.
All I had to do was to change:
$data .= '<p><img src="' . get_the_post_thumbnail_url($id, 'full') . '" alt=""/></p>';
to:
$data .= get_the_post_thumbnail($id, 'full');
This will be the final code to display WordPress Posts [Title, Excerpt, Learn more (link), Thumbnail/Featured Image, and Tags] using a Shortcode:
// Featured Items function display_featured_item($atts, $before = '', $sep = '', $after = '') { $atts = shortcode_atts(array( 'post_id' => 0, ), $atts, 'display-featured-item'); $id = $atts['post_id']; $tag_list = get_the_term_list( $id, 'post_tag', $before, $sep, $after ); if ($id == '0') return ''; $data = '<div class="promotion-wrapper">'; $data .= '<h2><a href="' . get_permalink($id) . '">' . get_the_title($id) . '</a></h2>'; $data .= '<p>' . get_the_excerpt($id) . '</p>'; $data .= '<p><a href="' . get_permalink($id) . '" class="reg-link">Learn more</a></p>'; $data .= get_the_post_thumbnail($id, 'full'); $data .= '<p>' . apply_filters( 'the_tags', $tag_list, $before, $sep, $after, $id ) . '</p>'; $data .= '</div>'; return $data; } add_shortcode('display-featured-item', 'display_featured_item');
Then, add this shortcode [display-featured-item]
to any of your page/post.