抜粋で文字の長さを制限するにはどうすればよいですか?
2 回答
- 投票
-
- 2012-10-30
これらの行をfunction.phpファイルに追加します
function custom_excerpt_length( $length ) { return 20; } add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
add these lines in function.php file
function custom_excerpt_length( $length ) { return 20; } add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
-
これにより、単語数は文字ではなく20に制限されます.This limits the number of words to 20, not the characters.
- 9
- 2016-12-07
- Ionut
-
なぜここに999番を追加したのですか?Why we have added number 999 here?
- 0
- 2018-04-11
- Navnish Bhardwaj
-
@NavnishBhardwaj 999は、ロードされるフィルターの優先順位です.詳細はこちらをご覧ください. https://developer.wordpress.org/reference/functions/add_filter/@NavnishBhardwaj 999 is the priority for the filter to be loaded. refer here for more details. https://developer.wordpress.org/reference/functions/add_filter/
- 1
- 2018-04-18
- Annapurna
-
- 2012-10-30
Deepaの回答によって提供された上記のフィルターフックに加えて、2つの方法で
the_excerpt
の使用を拡張するのに役立つ1つの追加関数があります.次のことができます...
抜粋を文字数で制限しますが、最後の単語は切り捨てないでください.これにより、最大文字数を返すことができますが、完全な単語は保持されるため、指定された数の制限内に収まる単語のみが返され、抜粋の出所を指定できます.
function get_excerpt($limit, $source = null){ $excerpt = $source == "content" ? get_the_content() : get_the_excerpt(); $excerpt = preg_replace(" (\[.*?\])",'',$excerpt); $excerpt = strip_shortcodes($excerpt); $excerpt = strip_tags($excerpt); $excerpt = substr($excerpt, 0, $limit); $excerpt = substr($excerpt, 0, strripos($excerpt, " ")); $excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt)); $excerpt = $excerpt.'... <a href="'.get_permalink($post->ID).'">more</a>'; return $excerpt; } /* Sample... Lorem ipsum habitant morbi (26 characters total) Returns first three words which is exactly 21 characters including spaces Example.. echo get_excerpt(21); Result... Lorem ipsum habitant Returns same as above, not enough characters in limit to return last word Example.. echo get_excerpt(24); Result... Lorem ipsum habitant Returns all 26 chars of our content, 30 char limit given, only 26 characters needed. Example.. echo get_excerpt(30); Result... Lorem ipsum habitant morbi */
この関数は、テーマファイル全体で複数回使用でき、それぞれに異なる文字制限が指定されています.
この関数には、どちらかからの抜粋を取得する機能があります.
-
the_content
-
the_excerpt
たとえば、投稿エディタ画面の_excerptボックスにテキストを含む投稿があるが、特別な使用例ではなく、_content本文から抜粋を取得したい場合.
get_excerpt(140, 'the_content'); //excerpt is grabbed from get_the_content
これは、
the_excerpt
ボックスに抜粋が設定されているかどうかに関係なく、the_content
の最初の140文字が必要であることを関数に通知します.get_excerpt(140); //excerpt is grabbed from get_the_excerpt
これは、
the_excerpt
の最初の140文字が最初に必要であることを関数に通知し、抜粋が存在しない場合は、the_content
がフォールバックとして使用されます.この機能を改善して、
the_content
またはthe_excerpt
の両方にWordPressフィルターを使用するか、またはそのような状況でそのまま使用することで、より効率的にすることができます. 適切ではない、組み込みのWordPressAPIの代替手段です.In addition to the above filter hook supplied by Deepa's answer here is one additional function that can help you extend the use of
the_excerpt
in two ways,Allows you to...
Limit the excerpt by number of characters but do NOT truncate the last word. This will allow you to return a maximum number of characters but preserve full words, so only the words that can fit within the specified number limit are returned and allow you to specify the source of where the excerpt will come from.
function get_excerpt($limit, $source = null){ $excerpt = $source == "content" ? get_the_content() : get_the_excerpt(); $excerpt = preg_replace(" (\[.*?\])",'',$excerpt); $excerpt = strip_shortcodes($excerpt); $excerpt = strip_tags($excerpt); $excerpt = substr($excerpt, 0, $limit); $excerpt = substr($excerpt, 0, strripos($excerpt, " ")); $excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt)); $excerpt = $excerpt.'... <a href="'.get_permalink($post->ID).'">more</a>'; return $excerpt; } /* Sample... Lorem ipsum habitant morbi (26 characters total) Returns first three words which is exactly 21 characters including spaces Example.. echo get_excerpt(21); Result... Lorem ipsum habitant Returns same as above, not enough characters in limit to return last word Example.. echo get_excerpt(24); Result... Lorem ipsum habitant Returns all 26 chars of our content, 30 char limit given, only 26 characters needed. Example.. echo get_excerpt(30); Result... Lorem ipsum habitant morbi */
This function can be used multiple times through out theme files, each with different character limits specified.
This function has the ability to retrieve an excerpt from either,
the_content
the_excerpt
For example, if you have posts that contain text in the_excerpt box on the post editor screen, but want to pull an excerpt from the_content body instead for a special use case you would instead do;
get_excerpt(140, 'the_content'); //excerpt is grabbed from get_the_content
This tells the function that you want the first 140 characters from
the_content
, regardless of whether an excerpt is set inthe_excerpt
box.get_excerpt(140); //excerpt is grabbed from get_the_excerpt
This tells the function that you want the first 140 characters from
the_excerpt
first and if no excerpt exists,the_content
will be used as a fallback.The function can be improved to be made more efficient and or incorporated with the use of WordPress filters for both
the_content
orthe_excerpt
or simply used as is in situations where there is no suitable, in-built WordPress API alternative.-
こんにちは!答えてくれてありがとう!抜粋の最後にある[...]の代わりに...で動作させる方法をお聞きしたいと思います.Hi! Thanks for all for the answer provided! I would like to ask, how to make it work with ... instead of [...] at the end of excerpt?
- 0
- 2012-11-02
- Jornes
-
最後の行、 `$excerpt=$excerpt.'...more '; `は、を定義するために使用できるものです.いわば「続きを読む」リンク.そこに省略記号が追加されていることがわかりますが、好きなものを追加できます.The last line, `$excerpt = $excerpt.'... more';` is what you can use to define your "read more" link so to speak. You can see there it adds an ellipsis but you can add whatever you like.
- 0
- 2012-11-02
- Adam
-
@Jornesおそらく6年遅れですが、ここに省略記号 `&hellip;`のHTMLコードがあります.@Jornes it maybe 6 years late, but here is the HTML code for the ellipsis `…`
- 1
- 2018-07-20
- AlbertSamuel
-
@AlbertSamuel回答ありがとうございます.:)@AlbertSamuel Thank you for the answer. :)
- 1
- 2019-05-10
- Jornes
この投稿を読んだ後、質問があります(検索を強調表示する方法プラグインなしの用語).この機能(プラグインなしの検索語)はとても気に入っていますが、文字の長さが長すぎます.抜粋を短くするには、どのphpコードを追加する必要がありますか?誰かがそれを提案することができれば幸いです.ありがとうございます!