【问题标题】:Echo the subtitle of a PARENT page within WordPress - Part (2)在 WordPress 中回显父页面的副标题 - 第 (2) 部分
【发布时间】:2013-08-14 21:04:32
【问题描述】:

原题目: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; ?>">

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

【问题讨论】:

    标签: php wordpress


    【解决方案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; ?>">
    

    【讨论】:

    • 这是 90%。不幸的是,如果我导航到父页面的子页面,它会使用全局标题而不是父标题填充标题标签。
    • 意思是如果我导航到根/父页面/子页面,即使子页面在属性中将父页面设置为父页面,也会显示全局根字幕而不是父字幕。
    • 我所做的只是获取您从中获取永久链接的特定页面的标题..
    • 我认为它缺少获取错误字幕属性的步骤。我可以尝试进一步调查。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    • 2015-01-17
    • 2017-06-15
    • 1970-01-01
    相关资源
    最近更新 更多