我正在尝试找到一些只有在当前页面标题与li中的标题匹配时才会回显类的逻辑。我无法提出一个'if'语句,该语句不适用于此查询中的所有li。
这是在wordpress中。
以下是上下文:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>" <?php if(NEED LOGIC HERE) echo 'class="current"'; ?>><?php the_title(); ?></a></li>
<?php endwhile; wp_reset_query(); endif; ?>
非常感谢任何帮助!
答案 0 :(得分:0)
如果您知道您某种single
(即页面,帖子或类似内容),那么我想您可以在自定义之前保存该ID循环并与之比较:
global $post;
//Make sure you are on a single, otherwise you'll get funny results
if (is_single()) {
$saved_id = $post->ID;
} else {
$saved_id = false;
}
if (have_posts()) {
while (have_posts()) {
the_post();
echo '<li><a href="' . get_the_permalink() . '"';
if($saved_id === $post->ID) {
echo 'class="current"';
}
echo '>';
the_title();
echo '</a></li>';
}
wp_reset_query();
}
...抱歉完全更改代码样式,我无法使用模板标签使其可读。
哦,当然你可以比较标题,如果这实际上更令人满意(虽然显然不那么精确),只需使用get_the_title()
或$post->post_title
代替$post-ID
。
答案 1 :(得分:0)
好的,我明白了。我需要在循环之外创建一个有效的if语句来读取查询和当前页面中的链接。注意$ titleID。
<?php
$titleID = (get_the_title());
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$parentID = (wp_get_post_parent_id( $post_ID ));
$args= array(
'posts_per_page' => -1,
'post_type' => 'page',
'post_parent' => $parentID,
'paged' => $paged
);
query_posts($args);
?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>" <?php if(get_the_title() == $titleID ) echo 'class="current"'; ?>><?php the_title(); ?></a></li>
<?php endwhile; wp_reset_query(); endif; ?>