我不是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
值。
如果有人有任何关于将其变为更灵活/更有效的功能的提示,请放弃一个帖子,否则我会在几个小时内解决这个问题。
答案 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