如何将职位名称中每个单词的第一个字母大写

时间:2018-12-16 作者:user3426073

你好,我想知道你是否能帮助我。你如何使标题大写每个单词的第一个字母?

有没有办法在wordpress中做到这一点?

3 个回复
SO网友:Max Yudin

下面的代码是由我发现的不同部分组合而成的,没有经过测试。仅将其视为一个想法。

<?php
add_filter( \'the_title\', \'my_capitalize_title\', 10, 2 );

function my_capitalize_title( $title, $id ) {

    // get separate words
    $words = preg_split( \'/[^\\w]*([\\s]+[^\\w]*|$)/\', $title, NULL, PREG_SPLIT_NO_EMPTY );

    $stop_words = array(
        \'the\', //
        \'a\',
        \'and\',
        \'of\',
    );

    $title_case = \'\';

    foreach( $words as $word ) {
        // concatenate stop word intact
        if ( in_array( $word, $stop_words ) ) {
            $title_case .= $word;
        }
        // or concatenate capitalized word
        $title_case .=  ucfirst( $word );
    }

    return $title_case;
}
你必须完善这个想法:你不想要“The 辛普森一家“成为”the 辛普森一家”。

SO网友:WPZA

这是给<title></title> 或输出标题?

如果output title, 将您的标题称为echo ucwords( get_the_title() ); 在您的页面上。

如果<title></title>, 您可以通过将过滤器应用于wpseo_title 在函数文件中。

SO网友:cbos

WordPress基于PHP。所以,一个更好的问题可能是,“是否有一个PHP函数可以做到这一点?”以上给出的答案ucwords; 是正确的。但是,可能有一些词不希望大写,例如“a”、“an”或“the”。如果是这样的话,就需要有一个过滤器来防止这些单词被大写。然而,这超出了这个问题的范围。