Я знаю, что это, вероятно, проблема с возвратом. Поэтому я разделил содержимое: одно в функции с именем thelist
, а другое — реальная функция, возвращающая его. Код следует за вопросом.
Фактический шорткод работает, за исключением того, что содержимое появляется вверху перед остальным содержимым. Я думал, что возврат now_include_post
исправит это, но это не так. Кто-нибудь может помочь?
function thelist() {
if (have_posts()) : while (have_posts()) : the_post();
?>
<div id="post-<?php the_ID(); ?>" <?php post_class('thumb'); ?>>
<a href="<?php the_permalink() ?>" class="thumb-link">
<?php
if (!post_password_required()) {
if (has_post_thumbnail()) {
the_post_thumbnail();
}
} else {
?>
<img src="<?php bloginfo('template_url') ?>/img/locked.png" />
<?php } ?>
</a>
<h2>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a>
</h2>
</div>
<?php /* end post */ ?>
<?php
endwhile;
endif;
wp_reset_query();
}
?>
<?php
function now_include_post($atts) {
$thepostid = intval($atts[id]);
query_posts("p=$thepostid");
$output.= thelist();
return $output;
}