サポート » 使い方全般 » タイトルに改行を入れる方法

  • 解決済 peco

    (@peco)


    タイトルに改行を入れる方法が分からず困っています。

    タイトルに<br />タグを入れると改行することができますが、
    アーカイブページと検索結果ページでは、改行なしで表示したいと考えています。

    フォーラムの過去記事、に似たような質問がありましたが、
    解決する事ができませんでした。

    上記の過去記事と同じように、
    aaaaa(スペース)bbbbbb
    とタイトルを作成し、
    (スペース)部分が改行される方法をご教授ください。

    質問ばかりで大変申し訳ございませんが、
    よろしくお願いいたします。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • まさに過去記事が回答ですが・・・

    解決する事ができませんでした。

    なにをどうやって、なにがだめだったのか書いてくれないとどこまで挑戦したのかも分かりませんね;)

    過去記事を検索して挑戦してみることは大変良いことです!失敗を恐れず、何がだめだったのか手順を含めて書いてみましょう!

    aaaaa(スペース)bbbbbb
    とタイトルを作成し、
    (スペース)部分が改行される方法をご教授ください。

    ではないですが。

    タイトルに
    タグを入れると改行することができますが、
    アーカイブページと検索結果ページでは、改行なしで表示したいと考えています。

    だったら、
    アーカイブページと検索結果ページではタグをエスケープしたらどうですか。

    あるいはアーカイブページと検索結果ページのCSSで
    br {
    display:none;
    }
    だな。

    トピック投稿者 peco

    (@peco)

    多くのご返信ありがとうございます。

    私がはじめに試した方法としては、functions.phpに以下を記述する方法です。

    <?php
    function filter_explode_title_by_space( $title=null ) {
        if ( empty($title) ) return;
        $title = mb_convert_kana( $title, 's' );
        if ( preg_match("/^(\S*)\s+?(.*)$/i", $title, $matches) ) {
            $title = $matches[1] . '<br />' . $matches[2];
        }
        return $title;
    }
    
    if ( is_home() ) {
        add_filter( 'the_title', 'filter_explode_title_by_space' );
    }
    ?>

    上記で駄目だったので、以下の方法も試しました。
    (こちらは、index.phpに記述。)

    $title = the_title();
    $res = str_replace(' ','
    ', $title);
    print $res;

    タイトルのスペースは、半角スペース・全角スペース両方で
    試しましたが、やはり改行はされませんでした。

    今回は、タイトルにbrタグを使わないで改行する方法を探しているため、
    タグのエスケープとdisplay:noneに関しては、利用することが出来ません。

    the_title()については、get_the_title()かthe_title(”, ”, false)で取得するといいと思います。
    あとstr_replaceの改行文字に置き換えてもHTMLだと改行はしないので、素直に
    タグに置き換えてはいかがでしょう。

    まとめると、こんな感じ。
    echo str_replace( ' ', '<br />', get_the_title() );

    トピック投稿者 peco

    (@peco)

    tmatsuurさん

    教えていただいた方法で出来ました!

    この度は、ご丁寧に教えていただき
    ありがとうございました!

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「タイトルに改行を入れる方法」には新たに返信することはできません。