单个布局后冲突中的微格式

时间:2014-07-24 作者:Unix

例如,当我们使用函数时,WordPress使用微格式post_class()DIV 包含文章。它自动包含名为hentry, 用于微格式。结构如下:

hentry条目标题更新发布作者

但问题是什么时候我们必须使用entry-title 类别超出hentry 类,特别是在内容上方。许多WordPress主题都使用这种结构:

<!--The TITLE and the breadcrumbs-->
<section id="title">
<div class="wrap">
    <h1 class="headline entry-title"><?php the_title(); ?></h1>
    <?php if (function_exists(\'mybread\')) mybread(); ?>
</div>
</section>

<!--The content-->
<div class="main-content">
<div class="wrap">
<div class="<?php content_layout(); ?>">
    <?php if (have_posts()) while (have_posts()) : the_post(); ?>
    <div id="post-<?php the_ID(); ?>" <?php post_class(); //The HENTRY class is here ?>  >
        <!--The content is here...-->
    </div>
</div>
</div>
</div>
这种布局无法使用entry-title 进入hentry. 因此,Google Webmaster Tools返回“条目标题丢失”错误。

我正在计划两种解决方案:删除hentry 使用筛选器初始化,或删除它,然后手动将其插入标题上方。

我怎样才能修复它?

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

如果你在一个页面上,默认情况下循环只运行一次,那么为什么不将你的标题和内容包装在一个容器中,这样你就可以post_class() 可获得的从顶部开始循环,在到达页脚之前结束循环(或者在需要结束循环的地方)。

如果您使用的是博客格式,并且正在多次运行循环,那么您无论如何都需要处于循环中才能使用the_title() 无论如何都是正确的,所以您应该可以访问post_class() 无论如何

您可能可以手动设置它,但随后需要将其从post类中删除,您可以使用以下操作:

function remove_from_posts_class( $classes ) {
    $classes = array_diff( $classes, array( "hentry" ) );
    return $classes;
}
add_filter( \'post_class\', \'remove_from_posts_class\' );
[1]Credits jrandomh

结束

相关推荐

Stop duplicate posts

我有三个循环,我想阻止他们在每个循环中显示相同的帖子。任何帮助都将不胜感激<?php $i; $args = array( \'numberposts\' => 8); $posts= get_posts( $args ); if ($posts) { foreach ( $posts as $i => $post ) { setup_postdata($post);