每种发布格式的标记不同

时间:2016-06-10 作者:Arete

我使用下划线。me框架和我的内容。php(显示帖子循环的模板)我有以下代码:

<div class="article-text dot-ellipsis">
    <div class="article-title clickablediv">
        <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a><br>
    </div>

    <div class="excerpt-index clickablediv">
        <a href="<?php echo get_permalink(); ?>"></a>

        <?php the_date(); echo " - ";
        $my_excerpt = get_the_excerpt();
        if ( \'\' != $my_excerpt ) {
        }
        echo $my_excerpt; 
        ?>
    </div>
</div>  
这使我能够为每篇文章设置样式。然而,我希望能够对每个帖子的格式进行不同的样式设置,以便“状态”帖子和常规帖子得到不同的标记。我想在没有CSS的情况下做到这一点!

我不确定这是否有意义,但换言之,有没有办法做到:

如果post格式为“status”,则应用以下标记-->>什么

如果post格式为“quote”,则应用以下标记-->>某些内容

等等默认情况下,适用于Wordpress中可用的所有格式。

1 个回复
最合适的回答,由SO网友:Howdy_McGee 整理而成

因为您需要一个特定的HTML结构,所以让我们保持干净,做什么The Codex 建议-根据帖子格式将其分解为模板部分。让我们在主题中创建一个子文件夹来存储这些帖子格式POST_TYPE_SLUG-formats 所以很清楚这个文件夹中有什么内容(用实际的post-type-slug替换大写)。然后我们可以将文件存储在此文件夹中,如下所示format-aside.php 包含您需要的所有标记。

最后,我们的循环如下所示:

<?php
    if( have_posts() ) {
        while( have_posts() ) {
            the_post();
            $format = get_post_format();
            $format = ( FALSE !== $format ) ? $format : \'default\';

            get_template_part( \'POST_TYPE_SLUG-formats/format\', $format );
        }
    }
?>
如果我们的帖子类型只是内置的post 在主题中有一个子文件夹,名为post-formats 在一些格式文件中,如:post-formats/format-aside.phppost-formats/format-chat.php. 如果出于任何原因get_post_format() 失败并返回false 这可能是一个好主意post-formats/format-default.php 作为后备。

在格式化文件中,您可以完全访问循环函数,如the_content()the_title().

相关推荐