WordPress, 日常・グチ, 未分類

この記事は~分で読むことが出来ますってやつの愚痴

このポストは文字数 約:3667文字、約 6分で読めます。

※追記アリ
※再度追記アリ、修正コード付き
※再再度修正$removal_all = 部分を if (isset($removal_all)) {~に修正

追加しろいわれましてね。
あったら、滞在時間が延びるとか、なんか色々あるらしいですね。
私自身は何一つ気にしたことがないですけど。

あんまり書くと身バレしそうですがもう知ったことではない。
正直今回の件は、自分の能力不足によるところではあるので、盛大な逆切れなのは承知しているのですが
(少ないけど記事出てくるってことは、きちんと勉強してりゃできるということですので)

よく、ブログとかで「この記事は○分でよめます」みたいにあるじゃないですか。
あれ。

先に言うけど
いちいち文字数見て1分間に人間が読める文字数が○○でじゃあ○分とか1記事ごと計算していれるのって

バカらしくないですか?wwwwwww

つか、「WP使ってて手動?プw」みたいな。
これに使った日数は、約2日。
時間に直したら7~8時間近くは使いました、冗談じゃなくてマジで
多分出来る人なら、2,30分とかで出来るレベルなんじゃないか・・・と思います。

ちなみに、PHPを勉強する気ないため知識0なのでこの結果です。

色々参考にして、なんとかうごくようになったんで!!!!

目的どおりに動いた瞬間「やっべ、天才じゃね?」とか思いました。
(石なげないでええええ)
つぎはぎなので、もしかしたら「こんな記述方法はありえない!!」とかあるかもしれませんが、とりあえず動いてるので!

※下の方に、修正したコードのっけてます。
自戒の意味含めてでこっちも残しとくw

function countdown($content){
        if ( !is_single() ) {
           // 個別ページ以外には表示しない
           return $content;
        }
global $post;
    $text = $post->post_content;
preg_match_all( "/<[a-zA-Z0-9\s=':;,{}#$%&@~<>\"\!\?\|\/\._\-\( \)\\\[\]]+>/" , $text , $match );
    for( $i=0; $i < count( $match[0] ); $i++ ){
        $removal_all = $removal_all + mb_strlen( $match[0][$i] , "UTF-8" );
    }
    $content_text = mb_strlen( $text , "UTF-8" ) - $removal_all;

$count = round(mb_strlen(strip_tags($content)) / 600);

if ($count == 0) {
        $count = 1;
    }

    return '<p class="readabout">このポストは文字数 約:' .  $content_text . '文字、約 ' .  $count . '分で読めます。</p>'.$content;

}
add_action('the_content','countdown');

とにかく、○文字ってとこで超絶ひっかかった。
○分で読むことが出来ますっていうのはカンタンに追加できたんですが。
○分で~は調べたら、ものすごい数出て来るんですよね。
なので、コピペで楽々超カンタン。
プラグインもちょっと探したんですけど、やっぱこっちも○分で~みたいなのしか見つからなくて。

文字数表示させたい→管理画面で とかは沢山あったのですが・・・。

時間を参考にしたのが下記サイト様
WordPress 「この記事は●分で読めます」をプラグインなしで表示させたい時
WordPressで「この記事は○分で読めます」と表示する方法

文字数探しててめっけて参考にしたのが下記サイト様
wordpressで記事の文字数をカウントする
記事の文字数を表示したい。

1個目のはその通りにファンクション入れても全くうんともすんとも言わず。
頑張ってみたんですが、すっげえエラー出しまくり。
挙句の果てに動いたと思ったら変なところに入ってる始末。
phpなんか解らないので、何がどうなってんの?状態。

2個目のは、これ頑張って編集したら希望に沿うものが出来そうだったんですが、どこをどーーー改変して良いのかわからず。
ファンクションに入れないでテーマに直で書いてるから、子テーマのファイル増産。

んーで、時間くれっつったんですが、何かカンチガイされてたみたいで
文字数、投稿画面に出てるでしょ?!
(2回?か3回目にはご丁寧にスクリーンショット付き)

とか

んなこと、いちいち言われなくても知ってるわ

そこまで求めてないからさっさとやれ(まあ、自分で文字数から時間計算してねってことだよね)言われて
今もうムカつきすぎて、超きもちわるいwwww吐きそうwwww

すでに記事色々入ってるとこで、一個一個手作業とか・・・
1記事単体ならそりゃ早いけど、複数あったらそれはそれで手間だよね?っていう。

追記:やっぱなんかおかしい★

ここで実際うごいたから、じゃあと思って入れたんですけどなんかおかしいwwww

近い数字なので許容範囲といえば範囲かもしれませんけど。

一部のところ(全部で4つ対応しなければならないんで)は、なぜかカウントが倍に。
もう意味わからない。
本文みると、めっちゃ改行つかうのに&nbspが入ってるわけですよ。
あとすさまじい改行の数。
空白いっぱいあけたかったんだろうな、そうだろうな。
それで、その関係?とおもったんですけど、こいつ数えて(涙)みてもそんな倍になる数ではないんです。

カウント部分を

$content_text = mb_strlen( strip_tags($text) , "UTF-8" ) - $removal_all;

にしたら、その&nbsp使いまくりなところは投稿画面の数値に近くなったんですが
今度は使ってないところがマイナス表示wwwwwもうこれどうしろとwwww

再度追記・・・

改行が思いっきり1文字にカウントされていました。
つまり、入力画面の改行とっぱらわないといけません。
んで、出来たのが下記

function countdown($content){
        if ( !is_single() ) {
           // 個別ページ以外には表示しない
           return $content;
        }
    global $post;
        $text = $post->post_content;
    preg_match_all( "/<[a-zA-Z0-9\s=':;,{}#$%&@~<>\"\!\?\|\/\._\-\( \)\\\[\]]+>/" , $text , $match );
        for( $i=0; $i < count( $match[0] ); $i++ ){
                if (isset($removal_all)) {
                    $removal_all + mb_strlen( $match[0][$i] , "UTF-8" );
                }
        }
        }

    $text = str_replace( array("\r\n","\r","\n"), '', strip_tags( $post -> post_content)) ;
    $content_text = mb_strlen( strip_tags($text) , "UTF-8" );
    $count = round(mb_strlen(strip_tags($content,"utf-8")) / 600);


    if ($count == 0) {
            $count = 1;
        }

    return '<p class="readabout">このポストは文字数 約:' .  $content_text . '文字、約 ' .  $count . '分で読めます。</p>'.$content;

}
add_action('the_content','countdown');

参考サイト様
WordPressの投稿一覧に本文の文字数とタイトル文字数を表示させる

※一部の文字列(&nbsp)とかは、どうやら管理画面の入力画面でカウントされているようです。

この記事が気に入ったら
シェアしてね

Twitter で