如何在wordpress中自定义帖子?

时间:2017-05-01 11:42:56

标签: php wordpress

我尝试使用wordpress中的短代码方式自定义我自己的帖子。我想根据其类别显示帖子。

<?php

function sample_post($atts) {
   extract(shortcode_atts(array(
      'category_name' => 'uncategorized'
   ), $atts));

  $args = array('category_name' => $category_name);
   query_posts($args);
   if (have_posts()) : while (have_posts()) : the_post(); ?>
         <label><?php the_title(); ?></label>
   <?php
        endwhile;
   endif;
}

add_shortcode('sample_post', 'sample_post');

?>

代码很好,我的模板名content-page.php中有一个文件 这是我的内容页面的代码

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    <header class="entry-header">
        <h1 class="entry-title"><?php the_title(); ?></h1>
    </header><!-- .entry-header -->

    <div class="entry-content">
        <?php the_content(); ?>
        <?php
            wp_link_pages( array(
                'before' => '<div class="page-links">' . __( 'Pages:', 'unite' ),
                'after'  => '</div>',
            ) );

            edit_post_link( __( 'Edit', 'foodgrower' ), '<span class="edit-link">', '</span>' );
        ?>
    </div><!-- .entry-content -->

</article><!-- #post-## -->

我不知道我是否遗漏了关于它的设置或查询。这是我真的想要展示。我只想显示<label><?php the_title(); ?></label>(帖子的标题),但现在它显示了content-page.php。我不明白为什么它出现在我的页面中。我没有调用content-page.php来显示在我的页面中。

1 个答案:

答案 0 :(得分:0)

更改代码以返回数据,如下所示

function sample_post($atts) {
   $return = '';
   extract(shortcode_atts(array(
      'category_name' => 'uncategorized'
   ), $atts));

  $args = array('category_name' => $category_name);
   $the_query = new WP_Query( $args );
   if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post();
         $return .= "<label>".the_title()."</label>";
        endwhile;
   endif;
   return $return;
}

add_shortcode('sample_post', 'sample_post');