我正在使用wp_list_pages在页面和子页面上创建子菜单。 一切正常
我的菜单看起来像
Parent, page title is Hello
Child,
Child,
Child,
etc
我正在尝试找到一种动态更改输出页面标题的方法。 在上面的例子中,我希望我的父页面显示GoodBye而不是Hello。
你可能会徘徊为什么我不只是将我的页面重命名为Goodbye。 这是因为我的设计中的页面标题以3种不同的格式显示 - 菜单标题Hello显示Welcome(可以通过WP菜单更改) - 页面标题显示正确的标题,即Hello
我需要我的左侧菜单才能显示再见....
希望这对某人有意义
THX
答案 0 :(得分:1)
在页面上使用自定义字段...我们称之为sidebar_title
。
然后,您需要将wp_list_pages
代码转换为自定义WordPress循环(如果您愿意,可能有一种方法可以使用get_pages
来执行相同操作。
以下是一些侧栏代码,用于列出当前页面及其子页面,将the_title();
替换为sidebar_title
(如果存在)。这很丑陋......重点是向您展示如何访问自定义字段。
<?php
//Get children of current page and display with custom fields.
//You will probably need to adjust this.
$args=array(
'post_parent' => $post->ID,
'post_type' => 'page',
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
?>
<ul>
<?php
// Print parent with sidebar_title, if it exists
$sidebar_title = get_post_meta($post->ID, 'sidebar_title', true);
if ($sidebar_title != ''){ ?>
<li><a href="<?php the_permalink() ?>"><?php echo $sidebar_title;?></a></li>
<?php } else { ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php } ?>
<?php
// Print each child page with sidebar_title, if it exists
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<?php
$sidebar_title = get_post_meta($post->ID, 'sidebar_title', true);
echo $sidebar_title;
if ($sidebar_title != ''){ ?>
<li><a href="<?php the_permalink() ?>"><?php echo $sidebar_title;?></a></li>
<?php } else { ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php } ?>
<?php endwhile; } ?>
</ul>
<?php wp_reset_query();?>