原始主题: Echo the subtitle of a PARENT page within WordPress?
我发现了对上面原始主题产生的代码Mark的单独需求。幸运的是,我能够与另一个社区成员合作,以实现类似的功能来处理该问题所涉及的相同元素的href。
我需要根据父页面的字幕值填充标题标记。但是,如果没有设置父级,我需要它默认为整个站点的默认子标题。
我们可以在这里为href属性实现此目的:How to set a link based off a post_parent being set - WordPress
当前代码以这种方式处理:
<?php
if ($post->post_parent) {
$permatitle = get_post_meta($post->post_parent, '_base_page_subtitle', true);
} else {
$permatitle = get_post_meta($post->ID, '_base_page_subtitle', true);
}
?>
<a href="<?php echo $permalink; ?>" title="<?php echo $permatitle; ?>">
但是,我也需要它来处理子页面。任何帮助将不胜感激,我会赞成任何有助于解决这个问题的人。
答案 0 :(得分:1)
如果你想要达到同样的目的(refer here),但这次是为了标题,
你可以这样做:
<?php
if ($post->post_parent!=0) {
// for child pages
$permatitle = get_post_meta(end( get_ancestors( get_the_ID(), 'page' )), '_base_page_subtitle', true);
} elseif($post->ID==0||count(get_pages('child_of='.$post->ID))==0) {
//for HP or pages with no child
$permatitle = get_post_meta(get_option( 'page_on_front' ), '_base_page_subtitle', true);
} else {
// for top level pages/parents
$permatitle = get_post_meta($post->ID, '_base_page_subtitle', true);
}
或更好,将两者结合起来:
<?php
if ($post->post_parent!=0) {
// Handling of Child Pages
$permalink = get_permalink( end( get_ancestors( get_the_ID(), 'page' )));
$permatitle = get_post_meta(end( get_ancestors( get_the_ID(), 'page' )), '_base_page_subtitle', true);
} elseif($post->ID==0||count(get_pages('child_of='.$post->ID))==0) {
// Homepage or Pages with no Parent
$permatitle = get_post_meta(get_option( 'page_on_front' ), '_base_page_subtitle', true);
$permalink = home_url();
} else {
// Handling of Top Level/Parent Pages
$permatitle = get_post_meta($post->ID, '_base_page_subtitle', true);
$permalink = get_permalink( end( get_ancestors( get_the_ID(), 'page' )));
}
然后您可以在以下情况之后执行此操作:
<a href="<?php echo $permalink; ?>" title="<?php echo $permatitle; ?>">