About MuCheng
站长暮城,暂无字无号。 嗜上网,喜欢折腾,爱旅行与王者,喜爱宁静大自然。性格随和、沉稳(实际上是有些木讷),不吸烟,偶小酌,乐于箪食瓢饮。 虽说早自2005年就已开站,但站无定所,四处飘荡,遂于2020年11月正式开通本站。所发文仅用于暮城记录学习笔记之用,以利己利人为基则,无任何盈利目的,不承接广告合作,未注明出处的文章,如有侵权,请及时联系暮城予以删除。 联系方式:mc@mcheng.cn

限制WordPress文章标题长度字数方法

前端限制文章标题字数

//限制前端文章标题字数
function short_title() {
$mytitleorig = get_the_title();
$title = htmlspecialchars($mytitleorig, ENT_QUOTES, "UTF-8"); 

$limit = "15"; //显示的字数,可根据需要调整
$pad="";

if(strlen($title) >= ($limit+3)) {
$title = mb_substr($title, 0, $limit) . $pad; }
echo $title;
}
调用:short_title();
或者使用更简单方法
wp_trim_words(get_the_titlee(),5); 
echo wp_trim_words( get_the_title(), 10, '...' );
echo mb_strimwidth(htmlspecialchars_decode(get_the_title()), 0, 50, '...');
备注:如何出现转移乱码等可以采用这个the_title_attribute()替换get_the_title()

后端限制WordPress文章标题字数

//限制文章标题输入字数
function title_count_js(){
    echo '<script>jQuery(document).ready(function(){
    jQuery("#titlewrap").after("<div><small>标题字数: </small><input type=\"text\" value=\"0\" maxlength=\"3\" size=\"3\" id=\"title_counter\" readonly=\"\" style=\"background:#fff;\"> <small>最大长度不得超过 46 个字</small></div>");
    jQuery("#title_counter").val(jQuery("#title").val().length);
    jQuery("#title").keyup( function() {
    jQuery("#title_counter").val(jQuery("#title").val().length);
    });
    jQuery("#titlewrap #title").keyup( function() {
    var $this = jQuery(this);
    if($this.val().length > 46)
    $this.val($this.val().substr(0, 46));
    });
});</script>';
}
add_action( 'admin_head-post.php', 'title_count_js');
add_action( 'admin_head-post-new.php', 'title_count_js');
//其它
add_filter( 'the_title', 'wpse_75691_trim_words' );
function wpse_75691_trim_words( $title )
{
    // limit to ten words
    return wp_trim_words( $title, 10, '' );
}
add_filter( 'the_title', 'wpse_75691_trim_words_by_post_type', 10, 2 );
function wpse_75691_trim_words_by_post_type( $title, $post_id )
{

    $post_type = get_post_type( $post_id );

    if ( 'product' !== $post_type )
        return $title;

    // limit to ten words
    return wp_trim_words( $title, 10, '' );
}
function limit_word_count($title) {
    $len = 5; //change this to the number of words
    if (str_word_count($title) > $len) {
        $keys = array_keys(str_word_count($title, 2));
        $title = substr($title, 0, $keys[$len]);
    }
    return $title;
}
add_filter('the_title', 'limit_word_count');