1

原创主题: 在 WordPress 中回显父页面的副标题?

我发现对与上述原始主题相关的代码 Mark 产生的单独需求。幸运的是,我能够与另一个社区成员合作以实现类似的功能来处理这个问题也将涉及到的同一元素的 href。

我需要根据父页面的字幕值填充标题标签。但是,如果没有设置父级,我需要将其默认为整个站点的默认子标题。

我们能够在此处为 href 属性实现此目的:如何根据正在设置的 post_parent 设置链接 - 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; ?>">

但是,我也需要它在子页面上工作。任何帮助将不胜感激,我会投票支持任何可以为解决这个问题做出贡献的人。

4

1 回答 1

1

如果您想实现相同的目标(请参阅此处),但这次是标题,

你可以这样做:

<?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; ?>">
于 2013-08-13T20:50:09.773 回答