Is that possible to get current post ID without passing in shortcode as parameter. Like [related-post] I want to get the post ID in which post this shortcode will use.
add_shortcode( 'related-article', 'related_article_title' );
function related_article_title( $atts ) {
$post_id = get_the_ID();
echo $post_id;
ob_start();
$query = new WP_Query( array(
'post_type' => 'post',
'posts_per_page' => 1,
'order' => 'DESC',
)
);
if ( $query->have_posts() ) { ?>
<div class="menu-row">
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
Leggi anche: <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endwhile; wp_reset_postdata(); ?>
</div>
<?php $myvariable = ob_get_clean();
return $myvariable;
}
}
Is that possible to get current post ID without passing in shortcode as parameter. Like [related-post] I want to get the post ID in which post this shortcode will use.
add_shortcode( 'related-article', 'related_article_title' );
function related_article_title( $atts ) {
$post_id = get_the_ID();
echo $post_id;
ob_start();
$query = new WP_Query( array(
'post_type' => 'post',
'posts_per_page' => 1,
'order' => 'DESC',
)
);
if ( $query->have_posts() ) { ?>
<div class="menu-row">
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
Leggi anche: <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endwhile; wp_reset_postdata(); ?>
</div>
<?php $myvariable = ob_get_clean();
return $myvariable;
}
}
add_shortcode( 'related-article', 'related_article_title' );
function related_article_title( $atts ) {
global $post;
echo $post->ID; // currently viewing post id
ob_start();
$query = new WP_Query( array(
'post_type' => 'post',
'posts_per_page' => 1,
'order' => 'DESC',
)
);
if ( $query->have_posts() ) { ?>
<div class="menu-row">
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
Leggi anche: <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endwhile; wp_reset_postdata(); ?>
</div>
<?php $myvariable = ob_get_clean();
return $myvariable;
}
}
Just as @gorakh-shrestha was trying, using global $post
and then $post->ID
, is a good way to proceed, even inside a shortcode
get_the_ID()
returns? You can always find current post ID on global $post_id – Sisir Commented Dec 2, 2015 at 9:22