• 解決済 31.com

    (@31com)


    通常のワードプレスループの中なら、
    $mtime = get_mtime(‘Y年n月j日’);
    echo $mtime;

    で更新日時を取得できると思います。
    ですが、get_postsの中だと
    以下のように怒られます。

    Fatal error: Call to undefined function get_mtime() in /home/31com/www/31.com/wp/wp-content/themes/kid_of_responsive/archive.php on line 75

    これはなぜなのでしょうか?またどうすれば更新日時を取得できるのでしょうか?

    参考までにエラーが出ているコードを以下に書きます
    (タブは全角空白4文字に置き換えてます)

    //★★★★★
    $mtime = get_mtime(‘Y年n月j日’);
    //★★★★★

    の部分が問題の箇所です。

    よろしくお願い申し上げます

    //**********************************************************************

    <!--BEGIN 現カテゴリに属する記事一覧(孫も含む)を最終更新日順で表示-->
    <?php
    
        //カテゴリーIDを取得する
        $cat = get_query_var('cat');
    
        //get_postsのための配列生成
        $catlist = array(
            'posts_per_page' => '-1',
            'cat' => $cat,
            'orderby' => 'modified',
            'order' => 'DESC',
        );
    
    //実際にget_postsする
    $posts = get_posts($catlist);
    global $post;
    
    //カテゴリが短歌(13)と今日の短歌(50)のときは以下をしない
    if ($cat != 13 && $cat != 50){
        echo "<p>このカテゴリの記事一覧</p>";
    
    //★★★★★
    $mtime = get_mtime('Y年n月j日');
    //★★★★★
    
        echo "
    <ul>";
        if($posts): foreach($posts as $post): setup_postdata($post);
         ?>
    <li><a>"><?php the_title(); ?></a></li>
    <?php
        endforeach; endif;
        echo "</ul>
    ";
    }
    ?>
    <!--END 現カテゴリに属する記事一覧(孫も含む)を最終更新日順で表示-->
7件の返信を表示中 - 1 - 7件目 (全7件中)
  • 通常のWordPressには、 get_mtimeという関数は無いようですね。

    おそらく、特定のテーマかプラグインでget_mtimeを定義しているのでしょう。もしそうなら、そのテーマかプラグインが有効な状態でない場合、

    Fatal error: Call to undefined function get_mtime() in /home/31com/www/31.com/wp/wp-content/themes/kid_of_responsive/archive.php on line 75

    といったエラーになるでしょう。

    WordPress本体のテンプレートタグとしては、the_modified_dateが用意されています。

    http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/the_modified_date

    こんにちは

    $post_data = get_post(26324);
    echo $post_data->post_modified;
    
    $post_data = get_posts();
    echo $post_data[0]->post_modified;

    のようにすれば、取得できると思います

    モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    nobitaさんの方法でもできますが、
    the_modified_dateというテンプレートタグがあるので、これを使えば一発です。(the_modified_timeでもできます。そのまま出力するのでなく、PHPの変数に入れたい場合はget_the_modified_dateかget_the_modified_timeでできます)

    ##追伸
    コードが読めなかったので世話役権限で整形しました。
    次回からは、コード部分を選択した状態で[code]ボタンを押すことで、崩れなくなりますよ。

    mypacecreatorさんのやり方の方が、ずっといいですね

    モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    (あっ…Fumito MIZUNOさんが先に回答してたのですが、スパム誤判定で表示されてなかったようです…
    テキスト1行+日本語版CodexのURLだとスパム誤判定されやすいようですね)

    トピック投稿者 31.com

    (@31com)

    Fumito MIZUNO様
    nobita様
    mypacecreator様

    ありがとうございます。今回はthe_modified_dateでやってみたいと思います!

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「get_postsで取得した投稿の更新日時を得るには?」には新たに返信することはできません。