0

我正在尝试通过 wordpress 中的短代码打印出自定义帖子。一切似乎都在工作,除了我无法打印出帖子的内容。我的代码如下。

function sc_liste($atts, $content = null) {
   global $post;
   $myposts = get_posts('post_type=section_modules&category_name=aboutiia&order=ASC&posts_per_page=3');
   $retour = '<div class="container-fluid sectionBoxContainer"><div class="row-fluid">';
    foreach($myposts as $post) :
            setup_postdata($post);
         $retour.='<div class="sectionBox span4"><h2>'.the_title("","",false).'</h2><div class="hrule_black"></div></div>'.the_content();
    endforeach;
    return $retour;
    wp_reset_query(); 

}
add_shortcode("list", "sc_liste");
4

2 回答 2

0

the_content()是在你关闭之后去的div.sectionBox,而你永远不会关闭原来的开口div.container-fluiddiv.row-fluid

这将产生:

<div class="container-fluid">
    <div class="row-fluid">

        <!-- start loop -->

        <div class="sectionBox">
            <h2>title</h2>
            <div class="hrule_black"></div>
        </div>
        Post content would get dumped here

        ... next post ....

        <div class="sectionBox">
            <h2>title</h2>
            <div class="hrule_black"></div>
        </div>
        Post content would get dumped here

就是这样。

您应该关闭前 2 个 div。而且,您可能希望将内容放在.sectionBox. 也许这就是问题的一部分……

放在return语句之后的代码不会运行(例如: your wp_reset_query())。

于 2013-10-18T20:22:53.440 回答
0

糟糕,我没有意识到我没有关闭 div 是匆忙猜测。我修复了一些标签和格式,而不是打印,而是在 sectionBox div 中打印,它在 container-fluid div 之前打印。这是我的新代码

function sc_liste($atts, $content = null) {
   global $post;
   $myposts = get_posts('post_type=section_modules&category_name=aboutiia&order=ASC&posts_per_page=3');
   $retour = '<div class="container-fluid sectionBoxContainer"><div class="row-fluid">';
    foreach($myposts as $post) :
            setup_postdata($post);
         $retour.='<div class="sectionBox span4"><h2>'.the_title("","",false).'</h2><div class="hrule_black"></div><p>'.the_content().'</p></div>';
    endforeach;
    $retour .= '</div></div>';

    return $retour;


}
add_shortcode("list", "sc_liste");
于 2013-10-18T20:57:27.500 回答