抜粋の文字数と省略記号が変更されているか確認

「抜粋の文字数はデフォルトで55単語、日本語などのマルチバイト文字では110文字」ということらしい。

 それでは短すぎると思うので、長くした。コードには150と書いたけれど、日本語だと300になってくれるのではないかと期待。省略文字も、ちょうど良い所で区切れていると続きがあることが分からないかもしれないので[…続きを読む]に変更して、その文字に記事へのリンクを張った。ただ、これが正常に機能するかは不明。だからテスト。

 ここまでの文字数はURLの文字数を考慮すると300は超えているはず。

参考サイト:記事の抜粋の長さや省略記号([…])を変更する | The WordPress Press

追記:
 URLを含めると370文字は超えているはずだが、「抜粋」にならなかったので、さらに文字を追加してみる。これで430文字くらいかな?

追記:残念な結果だった(functions.phpに追加したコードが機能しなかった)ので、設定を戻すことにした。

追記:
 コードを変えてみた。

// 抜粋の文字数と省略記号の変更
add_filter( 'ap_excerpt_length', function( $length ){
  return 150;
}, 999 );
add_filter( 'ap_excerpt_more', function( $more ){
  return '[...続きはURLから]';
}, 999 );
// 抜粋の文字数と省略記号の変更

追記:
 効果なし。ちゃんとプラグインのコードを見てフィルターを考えないといけない。変わらなくても良いけど…。

追記:
 次のコードにして試してみた。

// 抜粋の文字数と省略記号の変更
add_filter( 'activitypub_excerpt_length', function( $length ){
  return 150;
}, 999 );
add_filter( 'activitypub_excerpt_more', function( $more ){
  return '[...続きはURLから]';
}, 999 );
// 抜粋の文字数と省略記号の変更

追記:
 抜粋のデフォルト文字数は400文字らしい。

"ACTIVITYPUB_EXCERPT_LENGTH – Change the length of the Excerpt. Default: 400.
"
ActivityPub – WordPress プラグイン | WordPress.org 日本語
https://ja.wordpress.org/plugins/activitypub/#constants

 それならば変更しなくても良い。省略記号に関しては分かりやすいように変更しておく。それで、デフォルト文字数が400文字なのに、もっと短い所で切れてしまっているのはURLがあるからかもしれないので、このテスト記事はURLを文字にリンクを張るように修正した。抜粋ではリンクになってないかもしれないが…。

追記:
 URLを書かずにリンクにしてもダメだったので、そのリンクの位置を下の方にずらして試してみたが、抜粋された文字数はTwitterだったら148.5文字(半角で297文字)、マストドンのように半角も全角も区別しない場合の文字数は155文字。400文字もない。

追記:
 […続きを読む]の所の[]を半角にしていたのでショートコードの一つと認識されてバグったのかもしれないので全角に編集。

追記:
 抜粋文字数が増えた。マストドンのカウントで279文字。ここで妥協する。

未分類
管理人のマストドンアカウントへのリンクなど

コメント

  1. ishii ishii より:

    数え方が違う。
    [ap_excerpt]で使われている関数は
    /activitypub/includes/functions.php 内の、
    function generate_post_summary( $post, $length = 500 )
    というわけで、デフォルトは500バイト。
    UTF-8で数えるので、日本語は通常は3バイト。半角英数字は1バイト。
    デフォルトだと全角日本語で166文字。
    しかも、
    $length = $length - \mb_strlen( $excerpt_more, 'UTF-8' );
    とあるので、 [...続きは下のURLで]の27バイトが引かれて、473バイト(157文字)がデフォルト。
    また、wordwrapで分割して、最初の文字列だけが「抜粋」として利用されるので、分割の目安となる半角スペースが無かったりすると分割できず、想定外の所で分割されるかもしれないが、そもそも、wordwrapは日本語をUTF-8の羅列で見ていると思うので、どこで区切られるかは分からないかもしれない。

    そして、実際に投稿する際は、タイトル、ハッシュタグ一覧、記事URLを含むので、それらを含めてマストドンで500文字に収まればベストかもしれない.Blueskyへのブリッジを考慮するのなら、全てを含めて400文字に収めればベスト。

    • ishii ishii より:

      間違えた。 #Bluesky の最大文字数は300文字だった。

      "テキストは全角、半角合わせて最大300文字まで投稿できます。
      "
      テキストは何文字まで投稿できる? 画像は何枚? Blueskyでできること | マイナビニュース
      https://news.mynavi.jp/article/20240223-2887379/

タイトルとURLをコピーしました