好了,我已经尝试了很多短信代码片段,在我的帖子(非页面)中显示3个最近的帖子作为短代码。
像:
function posts_shortcode() {
$the_query = new WP_Query(array('posts_per_page' => 3));
// The Loop
while ( $the_query->have_posts() ) : $the_query->the_post();
echo '<li>';
the_title();
echo '</li>';
endwhile;
// Reset Post Data
wp_reset_postdata();
}
add_shortcode('posts', 'posts_shortcode');
和
function posts_shortcode() { // From Smashingmagazine
query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => 3));
if (have_posts()) :
while (have_posts()) : the_post();
$return_string = '<a href="'.get_permalink().'">'.get_the_title().'</a>';
endwhile;
endif;
wp_reset_query();
return $return_string;
}
function register_shortcodes(){
add_shortcode('posts', 'posts_shortcode');
}
甚至
function wptuts_recentpost($atts, $content=null){ // From WP Tuts+
$getpost = get_posts( array('number' => 1) );
$getpost = $getpost[0];
$return = $getpost->post_title . "<br />" . $getpost->post_excerpt . "…";
$return .= "<br /><a href='" . get_permalink($getpost->ID) . "'><em>read more →</em></a>";
return $return;
}
add_shortcode('newestpost', 'wptuts_recentpost');
所有这些似乎都不起作用。我认为它与循环或其他东西有关。如果我删除循环并只执行类似
的操作return 'hey there';
在函数()中,它运行得很好。
有什么想法吗?
修改 使用以下短代码:
function posts_shortcode() { // From Smashingmagazine
query_posts($args);
if (have_posts()) :
while (have_posts()) : the_post();
$return_string = '<a href="'.get_permalink().'">'.get_the_title().'</a>';
endwhile;
endif;
wp_reset_query();
return $return_string;
}
add_shortcode('posts', 'posts_shortcode');
我设法获得了一些结果,但它现在显示文本Home以及指向我的首页的链接。首先,我不明白为什么......第二,当我用'posts_per_page = 5'替换$ args时,它又消失了。我真的认为循环有些问题出于某种原因......
答案 0 :(得分:1)
不要使用第一个。你不应该在短代码函数中回应任何东西。
最后一个只打印一个帖子。此外,我认为它应该是数组('numberposts'=&gt; 1),而不是数组('number'=&gt; 1)。
第二个应该可以工作,但是你将add_shortcode包装在一个函数中,所以你需要在某个时候调用它。例如,add_action('init','register_shortcodes');或者将add_shortcode放入functions.php。
答案 1 :(得分:0)
这对我来说很好
add_shortcode( 'objectx-pages-list', 'objectx_pages_list_func' );
function objectx_pages_list_func( $atts ) {
global $post;
ob_start();
extract( shortcode_atts( array('ids' => '1186'), $atts ) );
$id_array = explode(',', $ids);
$pages_query = new WP_Query( array(
'post_type' => 'page',
'post__in' => $id_array,
'order' => 'ASC',
'orderby' => 'title',
) );
if ( $pages_query->have_posts() ) { ?>
<div class="carousel-wrapper">
<div class="owl-carousel owl-theme carousel-1" id="carousel-rooms">
<?php while ( $pages_query->have_posts() ) : $pages_query->the_post();
$featured_image = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );
?>
<div <?php post_class('item'); ?> id="post-<?php the_ID(); ?>">
<div class="row">
<div class="col-md-7">
<div class="img-rooms">
<a href="<?php the_permalink(); ?>">
<img class="img-responsive wp-post-image" src="<?php echo $featured_image; ?>"></a>
</div>
</div>
<div class="col-md-5">
<div class="detail-rooms">
<h2 class="title-room "><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
</div>
</div>
</div>
</div>
<?php endwhile; ?>
</div>
</div>
<?php $myvariable_pages = ob_get_clean();
wp_reset_postdata();
return $myvariable_pages;
}
}
<强>简码强>
[objectx-pages-list id="15,16,17"]