很多小伙伴发布的 WordPress 文章标题非常长,如果你的 WordPress 文章标题太长了会导致主题异常影响美观,对于很多小伙伴来说 WordPress 具有着非常} - e h折腾的心,今天就有朋友问我如何限制 WordPress 文章标题长度字数方法,这里我罗列g t W H L 6 ]了几种t a A C G方法,包括前端类型限制 WordPress 文章标题长度字数方{ B Y z k 6 $法,与后端编辑器限制 WordPress 文章标题长度字数方法。
WordF @ a D D *Press 自带的函数是直接输出文章标题长度的,标题太长了就E R J b v / S E :会自动换行,解决办法是使用 mbstring 函数库来解决,这样就可以指定具体标题字数。
前端限制n : e \ f F n文章标题字数
- function short_title() {
- $mytitleorig = get_the_title();
- $title = HTMLspecialchars($mytitlea K k [ I A ] Iorig, ENT_QUOTES, "UTF-8&qu4 0 i ?ot;);
- $limit = "15"; //显示的字数,可根据需要调整
- $pad="";
- if(strlen($title= P % e1; &gs 2 Z k B % 6 Ht;= e X e040;$limit+3)) {
- $title = mb_substr($title, 0, $limit)N ( 5 : h a $ $ . $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% d I0;get_the_title~ e { C V ~ / :040;)), 0, 50, '...');
现s ? b K在大部分的 PHP 服务器都支持了 MB 库(mbstring 库 全称是 Multi-Byte String 即各种语, c #言都有自己的编码,他们的` , w { l字节数是不一样的,目_ o f 1 $ F前 php 内部的编码只支持 ISO-8859-*, EUC-JP, UTF-8 其他的编码的语言是没办法在 php 程序上正确显示的。解决的方法就是通过 php 的 mbstring 函数库来解决),所以我们可以放心的使用这个用于控制字符串长度的函数。
备注:如何出现转移乱码等可以采用这个 the_title_attribute()替换 get_the_title()
后端限制 WordPresV S I 9 V Ss 文章标题
- //限制文章标题输入字数
- function title_count~ b 0 w % ] d 0_js(){
- echo '<script>jQuery(do, = n ( A ;cument).ready(function(){
- jQu8 P & + . 3ery("#titlewrap&q| L 6 3 3uot;).after("<div><small>标题字数: <j * J # t N ? V/smC J w kall><input type=\"tev [ / o u 1xt\" value=\"X D d G a 8 1 S;0\" maxlength=\"3\" size=\\ / $ B & d K r w"3\" id=\"title_countera ^ X . b v C\" readonly=\"\" style=\&h D G o :quot;background:#fff;\"> <small>最大长度不得超过 46 个字T [ c</small></div>");
- jQuery("k Z \ r z + 3#title_co= k 1 7 ?unter").val(jQuery("#title&quS u S n L 5 7 c [ot;).val().length);
- jQuery(&quo= # : z T # * 8t;#title").keyup( functp o # } til ~ ( M j \ H c /on() {
- jQuery("#title_counter").f F n F J *val(jQuery("#title").val().length);
- });
- jQuery("#titlewrap #4 x n ~ L E l $ wtitle").keyup( fJ M z j ! N Eunction() {
- var $this = jQuery(this);
- if($this.val().length > 46)
- $this.val($this.val().substr(0, 46));
- });
- });</script>';
- }
- add_action J 9 W K gn( 'admin_head-poq o 6st.php', 'title_count_js');
- add_action( 'admin_head-post-new8 | 6 6 E ^.php', 'title_count_js');
- //其它
- add_filter(W = o | g 'thY o @ % t # Re_title', 'wpse_75691_trim_words' );
- function wpse_7h _ P 4 o5691_trim_words( $title )
- W k _ M ;3;
- // limit to ten words
- return wp_trim_wo& / , \rds( $title, 10, '' M e ] r $ s L1;;
- &8 l # / d c a O (#125;
- add_f, { / 5 |ilter( 'the_title', 'wpse_756G l @ s t r =91_t2 7 & 2 \rim_words_by_post_type', 10, 2 );
- function wpse_75691_trim_words_by_post_t8 H I P \ 3ype( $title, $pos1 [ Q 8 t L N w Mt_id )
- {
- $post_type = get_post_type( $post_id );
- if ( 'product' !== $pos# ) ?t_type )
- return $title;
- // limit to ten words
- return wp_trim_words( $title, 10, '' );
- }
- funt / 9 Z s G 3 Xction limz \ i A r lit_word_count($title) {
- $len = 5; //change this to the number of words
- if (str_word_count($tiS ) M ) \ Etle) > $len) {
- $keys = array_keys(str_word_count($title, 2));
- $title = substr($title, 0, $ke| U K M h y w | Ays[$len]&g Y P _#041;;
- }) - d \ 8 Q O V k
- return $title;
- }
- add_filter('the_title', 'limit_word_count');