从静态FrontPage中删除页面标题

时间:2011-03-29 作者:Intrepid Realist

我想从静态frontpage中删除帖子标题。就那一页。我从free Press75主题创建了一个儿童主题。所以我想在我的孩子主题的功能上做些改变。php。

我使用了此代码,但它删除了所有页面、帖子和导航中的标题:

add_filter( \'the_title\', \'remove_page_title\' );

function remove_page_title() {
    if(is_page(\'138\')) {
    }
    return \'\';
}
我以为它会从ID为138的页面中删除标题。我做错了什么?

谢谢

5 个回复
SO网友:kaiser

将add\\u filter函数调用包装在条件标记周围,并使用内置的return false函数:

if ( is_page(\'138\') )
{
      add_filter( \'the_title\', \'__return_false\' );
}

SO网友:EAMann

你几乎成功了!

这是您的原始代码:

add_filter( \'the_title\', \'remove_page_title\' );

function remove_page_title() {
   if(is_page(\'138\')) {
   }
   return \'\';
}
它所做的是在the_title 不接受任何参数。这是你的第一个错误。这个the_title 过滤器实际上有两个参数——页面/帖子标题和页面/帖子id。因此,首先,让我们重写我们的挂钩:

add_filter( \'the_title\', \'remove_page_title\', 10, 2 );
function remove_page_title( $title, $id ) {

}
这将为过滤器分配优先级10,并允许我们接受过滤器发送的两个参数。然后我们指定函数接受的参数。

在函数内部,我们想检查我们是否在正确的页面上。如果是,返回\'\', 如果我们没有返回标题:

if( \'138\' == $id ) return \'\';

return $title;
原来的函数总是返回\'\' 当过滤器运行时。这就是为什么你在每一页上都有一个空白标题,而不仅仅是你想要的那一页。

我们的完整代码,因此您的完整过滤器,重写为接受参数并使用正确的逻辑:

add_filter( \'the_title\', \'remove_page_title\', 10, 2 );

function remove_page_title( $title, $id ) {
    if( \'138\' == $id ) return \'\';

    return $title;
}

SO网友:Jasom Dotnet

这就是如何在2020年从首页删除主标题(非标记),同时不从菜单项中删除\\u标题的方法:

function no_title_front_page( $title, $id = null ) {
    if (is_front_page() && !is_null( $id )) {
        return \'\';
    }
    return $title;

}

add_filter( \'the_title\', \'no_title_front_page\', 10, 2 );


function wpse309151_remove_title_filter_nav_menu( $nav_menu, $args ) {
    // we are working with menu, so remove the title filter
    remove_filter( \'the_title\', \'no_title_front_page\', 10, 2 );
    return $nav_menu;

}

// this filter fires just before the nav menu item creation process
add_filter( \'pre_wp_nav_menu\', \'wpse309151_remove_title_filter_nav_menu\', 10, 2 );

function wpse309151_add_title_filter_non_menu( $items, $args ) {
    // we are done working with menu, so add the title filter back
    add_filter( \'the_title\', \'no_title_front_page\', 10, 2 );
    return $items;

}

// this filter fires after nav menu item creation is done
add_filter( \'wp_nav_menu_items\', \'wpse309151_add_title_filter_non_menu\', 10, 2 );
代码基于this 答复

SO网友:markratledge

收割台单向。php:

<?php if (is_page(\'138\')) { echo\'
<style type="text/css" title="text/css">
yourpagetitleselector {display:none;}
</style>\'
; ?>

SO网友:Ryan

如果我理解正确的话--您想显示no<title> 对于首页,您可以使用:

<title><?php if ( ! is_front_page() ) { the_title(); } ?></title>

结束

相关推荐

Read more on pages WordPress

我知道这个话题已经在论坛上了,但解决方案对我来说根本不起作用。我有一些页面,我想使用“阅读更多”拆分内容。因此,我通过添加全局$more; and $more = 0; the_content(); 虽然每次单击“阅读更多”链接时都没有发生任何事情,但我的浏览器中显示以下结果,但一切看起来都正常:http://www.mysite/#more-15有人能帮我吗?非常感谢