Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPBカップ
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

カテゴリー:WordPressでブログ投稿のタイトルを自動的に切り捨てる方法

PHPで投稿タイトルを切り捨てる方法を学びたいですか?

切り捨て、または短縮することで、サイト全体のブログ投稿タイトルの長さをコントロールすることができます。WordPressのテーマによっては、テーマがサポートしているよりも短いタイトルを表示したい場合があります。

この投稿では、WordPressで投稿タイトルを切り捨てる方法を紹介する。

How to Automatically Truncate Blog Post Titles in WordPress

なぜWordPressでPHPを使って投稿タイトルを切り捨てるのか?

WordPressの投稿タイトルをPHPで切り詰めると、投稿タイトルの長さとサイトでの表示方法をよりコントロールできるようになります。

例えば、WordPressブログのデザインを崩さないように、ホームページ上の長い投稿タイトルをカットしたいかもしれない。

Truncate posts example

注: ブログ投稿をSEOに最適化するために投稿タイトルを短くしたいユーザーもいます。この場合、投稿タイトルを短くする必要はありません。代わりに、WordPressのSEOプラグインを使ってタイトルタグを短くするだけです。

SEOプラグインを使えば、検索結果ページ用のカスタムSEOタイトルを作成できる一方で、サイト訪問者用の投稿タイトルを長く保つことができる。

詳しくは、All In One SEOを正しく設定する方法についての究極のガイドをご覧ください。

ということで、2つの異なる方法を使用して、サイト上でWordPressの投稿タイトルを切り詰める方法を紹介しましょう:

方法1:WordPressの投稿タイトルをWordPressの関数で切り捨てる

WordPressで投稿タイトルを切り詰める最も簡単な方法は、WordPressファイルにPHPコードを追加することです。WordPressでコードをコピー&ペーストする方法をご覧ください。

多くのチュートリアルでは、テーマのfunctions.phpファイルに直接コードを追加するように書かれています。しかし、間違いがあるとWordPressのさまざまなエラーを引き起こしたり、サイトを壊してしまう可能性があります。

そのため、WordPressでカスタマイザーコードを追加する方法のガイドに従って、代わりに無料のWPCodeプラグインを使用することをお勧めします。

まず、WPCode無料プラグインをインストールし、有効化する必要があります。WordPressプラグインのインストール方法については、こちらをご覧ください。

有効化したら、管理サイドバーからCode Snippets ” + Add Snippetを選択します。次に、「カスタムコードを追加(新規スニペット)」オプションにマウスオーバーし、表示される「スニペットを使用」ボタンをクリックします。

Adding Custom Code in WPCode

新しいページが開きますので、そこにスニペットのタイトルを入力し、コードを追加してください。

以下のコードをWPCodeのコード・プレビュー・ペインにコピー&ペーストするだけです。

function max_title_length( $title ) {
$max = 35;
if( strlen( $title ) > $max ) {
return substr( $title, 0, $max ). " …";
} else {
return $title;
}
}

add_filter( 'the_title', 'max_title_length');
Truncating Headlines Using WPCode

このコードはWordPressの投稿ループ内で実行され、ブログ投稿のタイトルを’35’文字に短縮します。タイトルの長さを変更するには、$max変数にお好みのタイトルの長さを設定するだけです。

次に、コードタイプのドロップダウン・メニューから「PHP Snippet」を選択する必要がある。

最後に、有効化設定をオンにして、「スニペットを保存」ボタンをクリックしてスニペットを保存します。

Truncating Headlines Using WPCode

コードスニペットが有効化されると、WordPressサイト上のどこに表示されても、ブログ投稿のタイトルが短縮されます。

方法2:WordPressのテーマファイルを変更して、PHPでWordPressの投稿タイトルを切り詰める

WordPressの投稿タイトルを切り詰めるもう一つの方法は、WordPressのテーマファイルに直接コードを追加することです。

この方法では、タイトルを短くする場所をよりコントロールすることができます。例えば、ホームページ上ではタイトルをカットし、ブログ投稿日ではタイトルを表示したい場合などです。

そのためには、ブログ投稿のタイトルを切り捨てたいWordPressテーマファイルに直接PHPコードを追加する必要があります。

例えば、以下のコードスニペットをindex.phpファイルに追加し、WordPress投稿ループ内の既存のthe_titleタグを置き換えることで、サイト全体のタイトルの長さを変更することができます:

<a href="<?php the_permalink() ?>">
<?php
$thetitle = $post->post_title; /* or you can use get_the_title() */
$getlength = strlen($thetitle);
$thelength = 25;
echo substr($thetitle, 0, $thelength);
if ($getlength > $thelength) echo "...";
?>
</a>

このコードは投稿タイトルの長さを25文字にセットします。もしタイトルの長さが25文字より長い場合は、25文字の後にタイトルをカットし、最後に省略記号’…’を追加します。

サイトの文字数を変更するには、$thelength変数をお好みの文字数に変更するだけです。

コードを追加してファイルを保存したら、WordPressホスティングアカウントのテーマディレクトリにアップロードする必要があります。

FTPクライアントまたはWordPressホスティングコントロールパネルのファイルマネージャツールを使用してこれを行うことができます。FTPを使用したことがない場合は、FTPを使用してWordPressにファイルをアップロードする方法のガイドをご覧ください。

コードを追加すると、投稿タイトルは設定した文字数で切り捨てられます。

プロからのアドバイス:方法2を使用した場合、テーマを新しいバージョンに更新すると、これらの変更が失われます。これを避けるには、カスタマイズを失うことなくWordPressテーマを更新する方法についてのガイドを参照してください。

この投稿が、PHPでWordPressの投稿タイトルを切り捨てる方法を学ぶのにお役に立てば幸いです。また、優れたブログ投稿の書き方や、WordPressのスキーママークアッププラグインのエキスパートピックもご覧ください。

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

情報開示 私たちのコンテンツは読者支援型です。これは、あなたが私たちのリンクの一部をクリックした場合、私たちはコミッションを得ることができることを意味します。 WPBeginnerの資金源 をご覧ください。3$編集プロセスをご覧ください。

アバター

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

究極のWordPressツールキット

ツールキットへの無料アクセス - すべてのプロフェッショナルが持つべきWordPress関連製品とリソースのコレクション!

Reader Interactions

21件のコメント返信を残す

  1. Syed Balkhi

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. dustinporchia

    This is golden!….Thanks wpbeginner!

  3. Junaid

    Sweet! was just looking for a clients project

  4. Marco

    Does anybody know how the link title of previous_post_link(); could be truncated?

    thanks

  5. Brow

    Thanks this worked perfectly! I didn’t want to end up using a plugin just to do this and was happy your code cut down the titles properly.

    Thanks again!

  6. Joey Figaro

    Hey there – thanks for writing this up! I happened to stumble upon another example of how to achieve this and it seemed a lot more simple, so I will share it with you and see what you think.

    functions.php:

    function new_excerpt_length($length) {
    return 100;
    }
    add_filter(‘excerpt_length’, ‘new_excerpt_length’);

    • Editorial Staff

      These are two entirely different concepts…. The one you recommend is for post excerpts whereas the one we are talking about is for Post Titles.

      管理者

  7. Lena

    Hi!
    This doesn’t work if you use other languages than english. My swedish titel looks awful because the code doesn’t translate å ä and ö comparing to the default code. Any suggestions of what I have to do? This is a good trick and i want to use it.

    Kindly Lillan

    • Editorial Staff

      Hmm… that does sound like a serious issue. Wondering if you can specify the language via PHP, so it counts characters in that instead of english.

      管理者

      • Alex

        You might wanna try to specify a different charset, check Latin1 or utf8 i think they contain those chars as well.. I had some similar issues recently since my first language is german :)

    • Editorial Staff

      We appreciate your work for the community. Thanks for the nice snippet :)

      管理者

  8. Navjot Singh

    One Suggestion, this type of code should be included in functions.php and not index.php. You can use conditional tags to restrict the code to any page you want whether its the homepage or any other page where you want.

    • Editorial Staff

      This is just for specific areas… But yes, it can be customized and placed in functions.php

      管理者

  9. Thomas Scholz

    Don’t use strlen(). Use mb_strlen() or strlen(utf8_decode($str)) or you risk to truncate the string inside of a multi-byte character. The same applies to mb_substr().

    Oh, and an ellipsis is one character: … :)

    • snipsley

      Thanks!! mb_strlen() a mb_substr solved my encoding problem. I’ve been looking for this for hours!

    • Lena Backstedt

      BIG tnx!
       
      mb_strlen() also seems to work for the swedish language (so far I can see)

返信を残す

コメントありがとうございます。すべてのコメントは私たちのコメントポリシーに従ってモデレートされ、あなたのメールアドレスが公開されることはありませんのでご留意ください。名前欄にキーワードを使用しないでください。個人的で有意義な会話をしましょう。