在wordpress中单独打印的标签

时间:2018-06-20 05:17:06

标签: php wordpress

对于我的wordpress主页,我有以下代码,但是当检查html中的实际结果时,标记不在内容周围。经过一番检查后,我发现php行存在呼应类别的问题,但我不知道如何纠正它。

        <?php
            // args query
            $args = array(
                'post_type'      => 'post',
                'posts_per_page' => 5,
                'order'          => 'DESC'
            );

            // custom query
            $recent_posts = new WP_Query($args);

            // check that we have results
            if($recent_posts->have_posts()) : ?>

            <ul class="article_list">

                <?php
                // start loop
                while ($recent_posts->have_posts() ) : $recent_posts->the_post(); ?>

                <li class="regular">
                    <a href="<?php echo get_permalink(); ?>">
                        <div class="text">
                            <p class="category"><?php echo the_category(); ?></p>
                            <h3 class="article_title"><?php echo mb_strimwidth(get_the_title(), 0, 80, '...'); ?></h3>
                            <p class="date"><?php echo get_the_date( 'Y-m-d' ); ?></p>
                        </div>
                        <div class="mask">
                            <img src="<?php the_post_thumbnail_url();?>" alt="" class="art_img">
                        </div>
                    </a>
                </li>
            <?php endwhile; ?>
        </ul>
    <?php endif;
    // reset query
    wp_reset_postdata();
    ?>

1 个答案:

答案 0 :(得分:3)

WordPress有两种类型的post变量函数。 get_函数将返回一个值,以便可以对其进行操作并随后将其打印到文档中。 the_函数的作用相同,但是它们会自动将值打印到文档中,并通过任何适用的过滤器运行它。

注意:通常它们更像the_content()get_the_content()的同义词,但是这些(imo)的命名不正确。

the_category()只是一个回显get_the_category_list()

的包装函数

更改:

<p class="category"><?php echo the_category(); ?></p>

要:

<p class="category"><?php echo get_the_category_list(); ?></p>

<p class="category"><?php the_category(); ?></p>

那应该可以解决您的问题。现在,您正在回显已经回显输出的函数。

编辑:根据您的评论,我现在看到您的意思是<a>标签是自己打印的。这是因为the_category()get_the_category_list()在默认情况下输出链接列表。因此,您可以在现有<a href="<?php echo get_permalink(); ?>">标签的内部 中链接类别,该标签是无效的HTML。链接中不能有链接。

您要么想通过strip_tags()运行当前函数,要么使用诸如get_categories()之类的其他类别函数并对其进行遍历