是否可以在Single.php中根据POST格式定制POST?

时间:2018-05-30 作者:Owaiz Yusufi

首先让我知道,我以前写过一个博客,我已经根据帖子格式进行了自定义,但我已经在博客主页(即索引)上进行了自定义。php。

现在我正在制作另一个博客,我想通过帖子格式对其进行自定义,但这次我想自定义阅读页面上的帖子,即单篇。php(根据帖子类型)。

是否可以这样做,或者我们只能在索引上自定义帖子格式。php。

Update:

Sorry:-

其post格式不是post类型

2 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

是的,这是可能的。最简单且可读性很强的方法是像二十个主题那样使用get_post_formatget_template_part 功能。

假设您当前的single.php 文件如下所示:

<?php get_header(); ?>
... 
<?php while ( have_posts() ) : the_post; ?>
<article ...>
    ...
</article>
<?php endwhile; ?>
...
只需将其更改为:

<?php get_header(); ?>
... 
<?php
    while ( have_posts() ) : the_post;
        get_template_part( \'content\', get_post_format() );
    endwhile;
?>
...
并移动此部分:

<article ...>
    ...
</article>
到调用的文件content.php;

现在,这将是您帖子的默认HTML。如果要修改的HTML代码。。。比如说报价格式,那么您必须创建一个名为content-quote.php (所以这里的规则是(content-{post_format}.php).

为什么以及如何工作

get_post_format 返回帖子的帖子格式。

get_template_part 另一方面,创造了所有的魔法;)引用法典:

为子主题提供了一种简单的机制,可以重载主题中可重用的代码段。

包含主题的命名模板部分,或者如果指定了名称,则将包含专用部分。如果主题不包含{slug}。php文件,则不包括任何模板。

模板使用require而不是require\\u包含一次,因此您可以多次包含同一模板部件。

对于$name参数,如果文件名为“{slug}-special.php”,则指定“special”。

SO网友:user3135691

当然,您可以简单地获取一类帖子,然后使用您自己的CSS对其进行样式化。

以下代码摘自WordPress Codex的本页:Post Class

此函数返回帖子的所有类,它可以出现在主页中。php和/或单个。例如php。

// PHP single.php template code
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
主题循环中的HTML/PHP标记创建以下输出:

//HTML Output by WordPress
<div id="post-4564" class="class-name post-4564 post type-post status-publish format-standard hentry category-news">
如您所见,它为您提供了“格式标准”类。根据post格式,可以输出以下类:

aside, gallery, link, quote, status, video, audio, chat

所以,如果你想设计你的单曲。php不同,查看这些类并通过CSS获取它们:

/* CSS */
.format-standard {
    background: url(\'images/lonesome-background.jpg\')top center no-repeat;
}

.format-audio {
    background: url(\'images/funky-music.jpg\')top center no-repeat;
}

.format-gallery {
    background: url(\'images/super-wide-gallery.jpg\')top center no-repeat;
}
。。。等等

你应该有一个look at the Codex. 希望这有帮助。

结束