例如,当我们使用函数时,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
使用筛选器初始化,或删除它,然后手动将其插入标题上方。
我怎样才能修复它?
最合适的回答,由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