• minatosakurai

    (@minatosakurai)


    初めまして。

    こちらのURLでブログを書いているのですが、
    http://www.aquapolis.jp/blog/
    「Archives」に表示されているリストの表示が、すべて西暦のみになってしまっています。
    リンクを見ると「http://www.aquapolis.jp/blog/?m=200907」のようになっているので、月ごとの一覧に飛べることは飛べるのですが…

    実は半年ほど前に、各記事の日付表示を「Jul.10 2009(曜日表示なし)」のような表示にしたくて、どれかのファイルを弄りました。しかし、不用意にも、それがどのファイルだったか忘れてしまいました。
    おそらく、それ以降、サイドバーの表示がおかしくなり、現在に至るまで解決策が分からないままなのです。
    このことと関係するのでしょうが、カレンダーを表示させても、「2009年」とだけ表示され、肝心の月が表示されません。

    申し訳ありませんが、どなたかお分かりになる方がいらっしゃいましたら、ご教示いただけると助かります。
    よろしくお願いします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック投稿者 minatosakurai

    (@minatosakurai)

    自己レス失礼します。書き忘れたので…

    アーカイブとカレンダーは、テンプレートのものではなく、ウィジェットのものを用いています。
    他にもたくさんウィジェットを使っており、テーマを変えてもサイドバーはすべて同じ仕様にしたいため、可能ならばウィジェット側の設定で何とかしたいと考えております。
    よろしくお願いします。

    mizube

    (@mizube)

    まずは、どのファイルを弄ったかを突き止めなければいけませんね。

    各アーカイブページのタイトルでも、月の表示が消えてしまっていますので、言語ファイルあたりがまず怪しいかと思います。これは ja.mo の該当箇所を修正するか、同じバージョンの言語ファイルをダウンロードし直して、上書きすれば元に戻ると思います。まずはその線で調べてみてください。

    次にウィジェットの設定で日付のフォーマットを制御をしたいということですが、アーカイブのウィジェットの場合、本体を改造するという選択肢がなしだとすれば、日付のフォーマットを設定できるウィジェットを探すか、プラグインとして一から新しく作成するほかなさそうです。ちなみに、本体のプラグインインストーラでざっくり探してみましたが、適当なものはなさそうでした。言語ファイルを修正するのが手っ取り早いと思いますよ。ヒント: %1$s %2$d, January

    トピック投稿者 minatosakurai

    (@minatosakurai)

    mizubeさん、ありがとうございます!

    日付表示を弄る際に参考にしたサイトを全部ブックマークしていたことを思い出し、そこからたどっていったら、原因のファイルが判明しました。
    locale.phpでした。そういえば確かにそういう名前のファイルを弄りました。
    同じバージョンのWordPressをダウンロードして、locale.phpを上書きしたら、月の表示が元に戻りました。
    アドバイスありがとうございました!

    日付のフォーマットを弄るのは、本体を改造したほうが手っ取り早いということでしょうか。
    ja.moというファイルの、日付表示を指定する箇所を探して修正すればいいということでしょうかね。やってみます。

    mizube

    (@mizube)

    私の回答は少しずれてましたね^^; でも、元に戻せたようで何よりです。

    日付のフォーマットを弄るのは、本体を改造したほうが手っ取り早いということでしょうか。
    ja.moというファイルの、日付表示を指定する箇所を探して修正すればいいということでしょうかね

    はい。ただ、バージョンアップする度に修正が必要になってしまうので、 ja.mo の中身を修正するだけで解決すればそれに越したことはありませんね。

    とはいえ minatosakurai さんの場合、アーカイブの日付のフォーマットを変更するよりも、

    各記事の日付表示を「Jul.10 2009(曜日表示なし)」のような表示にしたくて

    という点を今度はどうやって解決するかが問題になるんじゃないかなと思います。

    本来 Jul としたいところが 7 月 というようになってしまうのを、テンプレートの特定の箇所のみで回避する方法があります。テンプレート上の日付を指定する部分で、日付のフォーマットを一度 Unix タイムスタンプの形式にして、その値を date() 関数に渡し、その段階で本来のフォーマットへの変換を行うんです。

    以下は the_date() の場合、 echo get_the_time() の場合、それぞれの例です。

    <?php
    // the_date() : 1 つ前の投稿と同じ日の場合表示されない
    if ( !$dformat ) $dformat = get_option('date_format');
    $the_date = the_date( 'U', null, null, false ); // Unix タイムスタンプ or ''
    if ( !empty( $the_date ) ) echo date( $dformat, $the_date );
    ?>
    <?php
    // echo get_the_time() : 常に指定のフォーマットで表示する
    if ( !$dformat ) $dformat = get_option('date_format');
    $the_date = get_the_time('U'); // Unix タイムスタンプ
    echo date( $dformat, $the_date );
    ?>

    上記の例では、 $dformat には管理ページで設定した日付のフォーマットが入りますが、直接任意のフォーマットを指定してもいいと思います。

    <?php
    // the_date()
    $the_date = the_date( 'U', null, null, false );
    if ( !empty( $the_date ) ) echo date( 'M.n Y', $the_date );
    // echo get_the_time()
    echo date( 'M.n Y', get_the_time('U') );

    この方法で、各投稿の日付部分ではローカライズを回避し、 July や Sat のような英語の形式を使い、一方で日付のアーカイブや管理ページ上では 7 月 というローカライズ後の表記を保持、といったことが出来ます。

    トピック投稿者 minatosakurai

    (@minatosakurai)

    >mizubeさん

    すっかりレスが遅れました(汗)
    詳しいご説明ありがとうございました。
    ここのところWordPress弄る時間があまり取れないんですが、余裕ができたらいただいたアドバイスを参考にしていろいろ試してみたいと思います!

    (また何か無いとも限らないので(;^_^A ひとまず「解決」にはしないでおきます…)

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「サイドバーのArchives表示の不具合」には新たに返信することはできません。