如何为顶级页面加载不同的Bloginfo值?

时间:2013-04-16 16:35:00

标签: wordpress if-statement

我不是PHP程序员,所以我在这个问题上已经抓了两个小时,因为似乎有很多方法可以做到这一点。由于我糟糕的PHP / Wordpress语法和逻辑知识,我没有设法工作。

创建和调用仅在顶级页面上为<?php bloginfo('name') ?>加载不同值的函数的最佳方法是什么?即顶级菜单标题。

我想知道是否有可能沿着这些方向做点什么:

<?php

if ( is_page( 'about' ) || == $post->post_parent ) {    
bloginfo = 'about';

} elseif ( is_page( 'work' ) || == $post->post_parent ) {   
bloginfo = 'work';

} elseif ( is_page( 'contact' ) || == $post->post_parent ) {    
    bloginfo = 'contact';

} else { 
  bloginfo('name');
}   

?>

请将其视为伪代码,因为我仍然熟悉wordpress和PHP codex /语法,因此我无法获得任何工作。但基本上,我需要做的是使用主导航链接名称作为其部分中每个页面的bloginfo名称。其他任何东西都是一个例外,它默认返回主页bloginfo名称。

尝试将导航链接标题本身解析为函数会更容易吗?

如果可以,请帮忙!

更新

我完全抛弃了之前的选项并走了以下路线:

<?php if (is_page() || is_single( array( 62, 57, 51, 8 ) )) {

        echo wp_title('');
            }

            else{


            $category = get_the_category(); 
            echo $category[0]->cat_name;
            }?>

它有点拙劣,但在wordpress网站上阅读了很多参考资料后,我想我开始理解语法了。因此,我现在定位页面标题,而不是定位bloginfo()。但是我不希望这些帖子有一个巨大的标题,因此我将除了顶级“pages”以外的所有页面取代第一个类别,除了少数几个实际上是自定义页面的帖子,所以需要显示wp_title值。

如果有人有任何关于将其变为更灵活/更有效的功能的提示,请放弃一个帖子,否则我会在几个小时内解决这个问题。

2 个答案:

答案 0 :(得分:0)

语法将是

<?php

if ( is_page( 'about' ) || == $post->post_parent ) {    
  bloginfo('about');

} elseif ( is_page( 'work' ) || == $post->post_parent ) {   
  bloginfo('work');

} elseif ( is_page( 'contact' ) || == $post->post_parent ) {    
  bloginfo('contact');

} else { 
  bloginfo('name');
}   

?>

但是在wordpress中没有像about,work,contact to bloginfo这样的参数。 有关bloginfo的更多信息,请查看此网址 - &gt; http://codex.wordpress.org/Function_Reference/bloginfo

答案 1 :(得分:0)

您可以尝试使用name过滤器过滤/更改bloginfo(只需在functions.php文件中添加此代码段)

function my_custom_blogname( $output, $show )
{
    if( $show == 'name' )
    {
        if( is_page('about') ) $output = 'It\'s my about page';
        if( is_page('work') ) $output = 'It\'s my work page';
        if( is_page('contact') ) $output = 'It\'s my contact page';
    }
    return $output;
}
add_filter('bloginfo', 'my_custom_blogname', 10, 2);

更新:您还可以使用

检查网页是否为父/最顶层网页
if( !$post->post_parent ) // To check only if it's a parent/top lavel page
if( is_page('about') && !$post->post_parent ) $output = 'about'; // To check if it's a parent/top lavel page and about page