当在同一页面上显示时,Wordpress将post_class添加到页面部分

时间:2014-05-30 14:28:35

标签: php wordpress class post

我正在尝试构建单页wordpress主题。我已经能够在一个页面上显示我的所有页面内容,并使用菜单项在它之间滚动。现在我想将<?php post_class(); ?>添加到我的每个页面部分,以便它们显示正确的wordpress类。

这是我的php,它将所有页面内容输出到一个页面中,

<?php $pages = get_pages(array('sort_column' => 'menu_order'));
foreach ($pages as $page_data) {
$content = apply_filters('the_content', $page_data->post_content);
$slug = $page_data->post_name;
$class = post_class('content_wrapper');
echo '<div id="' . $slug . '" class="' . $class . '">';
echo $content;
echo '</div>';
}
?>  

此代码有两个问题我似乎无法解决:

1)此代码只为每个页面输出相同的类,而不是为每个页面输出不同的类

2)该类只是输出到我的原始HTML中,因此在我的网站上是可见的 - 它没有添加到我写的class="' . $class . '">';

1 个答案:

答案 0 :(得分:1)

请改为尝试:

$class = get_post_class('content_wrapper', $page_data->ID);
printf ( '<div id="%s" class="%s">', $slug, implode(' ', $class) );

post_class()旨在echo生成的课程。 get_post_class()将帖子类作为数组返回。

由于您在循环外操作,您需要手动将帖子ID传递给函数。