Remove year from title

时间:2017-11-13 作者:Garrosh

在一些帖子标题中,我有“年”(例如:“Lorem ipsum-2018”),这不是问题。但在博客的另一部分中,我将这些标题称为PHP:

$shortitle = wp_html_excerpt( get_the_title(), 23, \'...\' ); <div class="col-md-9">\' . $shortitle . \'</div>.

如何删除标题中的年份显示?谢谢:)

更新时间:

找到了str\\u replace函数,但对我来说很奇怪:

    $title_long = get_the_title();
    $excludeyears = array(" - 2017", " - 2018", " - 2019", " - 2020");
    $title_long_exclude_years = str_replace($excludeyears, "", $title_long);    

    $shortitle = wp_html_excerpt( $title_long_exclude_years, 23, \'...\' );
它显示:

Lorem ipsum–201。。。

更新2:

好吧,这是“-”字符的问题,但我没有解决办法。

2 个回复
最合适的回答,由SO网友:ghoul 整理而成

是的,问题是连字符。WordPress将带空格的连字符转换为短划线。以下是使用WordPress使用连字符进行的转换:

Foo{3连字符,间隔}条→ Foo-Bar(em破折号)

  • Foo{3个连字符,无空格}条→ Foo Bar(em破折号)

  • Foo{2个连字符,间隔}条→ Foo-Bar(em破折号)

  • Foo{2个连字符,无空格}条→ Foo–Bar(短划线)

  • Foo{1连字符,间隔}条→ Foo–Bar(短划线)

  • 参考here 为了这个。

    对于您的特定问题,您可以执行以下操作。这有一个限制,即日期应在标题的最后一个。

    // WP converts hyphens with spaces to n-dash, so convert them to hyphen again.
    $title = str_replace( array( \'&nbsp;\', \'&#160;\', \'&ndash;\', \'&#8211;\', \'&mdash;\', \'&#8212;\' ), \'-\', get_the_title() );
    // Explode using hyphen;
    $title =  explode( \'-\', $title );
    // Remove last element i.e date.
    array_pop( $title );
    // Convert array to string.
    $title = implode( $title );
    // Echo.
    echo $title;
    
    或者您可以使用类似以下的regex执行相同的操作,但不受上述限制:

            // WP converts hyphens with spaces to n-dash, so convert them to hyphen again.
            $title = str_replace( array( \'&nbsp;\', \'&#160;\', \'&ndash;\', \'&#8211;\', \'&mdash;\', \'&#8212;\' ), \'-\', get_the_title() );
    
            // Pattern for date with hyphen and space.
            $pattern = \'(\\s\\W\\s\\d+)\';
    
            // Replace with space.
            echo preg_replace( $pattern, \' \', $title );
    

    SO网友:Piyush Rawat

    我假设所有标题都有相同的模式,即连字符后跟年份。

    $title_long = get_the_title();
    $title = explode(\'-\' , $title_long);
    $title = trim($title[0]);
    $shortitle = wp_html_excerpt( $title, 23, \'...\' );
    
    我想这样就可以了。

    结束

    相关推荐

    Admin Theme customization

    我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register