如何获取配置为博客(循环)的页面的元标题

时间:2014-05-06 作者:Unix

我正在使用一个函数来打印每种类型内容的标题。我还在帖子和页面中配置了一个新的元框,以输入title标记。

这是打印标题功能的一部分:

//...
elseif (is_page() || is_single()) { //Page and Post Title
    global $post;
    $metatitle = get_post_meta($post->ID, \'metatitle_value_key\', true);
    if ($metatitle) {
        echo stripslashes($metatitle);
    } else {
        the_title();
    }
}
//...
else { wp_title(\'\'); }
它非常适用于帖子和页面,除非我选择静态主页和博客页面(这是以前创建的空白页面)。感谢上次else 它会打印页面“Blog”的正常标题,但不会打印元标题为“My metatitle box”的元框。

我以为是因为邮政ID,所以我分开了is_page()is_post() 使用以下代码尝试从循环中获取页面ID$page_id = get_queried_object_id(); 但这个对我不起作用。以下代码是我所拥有的:

//...
elseif (is_page()) { //Page Title
    global $post;
    $page_id = get_queried_object_id();
    $metatitle = get_post_meta($page_id, \'metatitle_value_key\', true);
    if ($metatitle) {
        echo stripslashes($metatitle);
    } else {
        the_title();
    }
} //...
我该怎么做呢?问题可能是由于插入元盒的方式,它使用$post_id 每一次。无论如何,我不确定,因为它对帖子和页面都有效。

1 个回复
SO网友:Unix

好的,我自己找到了方法。代码如下:

//...
elseif (is_page() || is_single()) { //Page and Post Title
    global $post;
    $metatitle = get_post_meta($post->ID, \'metatitle_value_key\', true);
    if ($metatitle) {
        echo stripslashes($metatitle);
    } else {
        the_title();
    }
}  elseif (is_home()) { //Using is_home for the blog page

    //And using get_queried_object        
    $page_object = get_queried_object();
    $metatitle = get_post_meta($page_object->ID, \'metatitle_value_key\', true);
    if ($metatitle) {
        echo stripslashes($metatitle);
    } else {
        the_title();
    }
}
//...

结束