サポート » 使い方全般 » 記事一覧は自由に、新着情報ページは新着順に並べたい。

  • 解決済 inocchi_68

    (@inocchi_68)


    いつもお世話になっております。
    お陰様で、何とかクライアントの希望に沿う『施設一覧』を制作することができました。
    誠にありがとうございました。

    その後、新着情報ページも同じWordPressで制作しては?という話になり、
    チャレンジを試みたところ、記事の並び替えプラグインの影響が強く、
    新着順に記事を拾ってくる事ができませんでした。
    並べ替えプラグインは『Intuitive Custom Post Order』、
    新着情報プラグインは『What’s New Generator』を使っています。
    後者は変更可能です。

    プラグインを使わずに固定ページのテンプレートや、
    content-page.phpに書いた場合も同じ結果でした。
    どうぞ宜しくお願い致します。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • モデレーター jim912

    (@jim912)

    Intuitive Custom Post Order のソースを確認したところ、グローバル変数の $args が存在した場合、そちらを優先するようになっていました。

    Intuitive Custom Post Order ver.2.1.0 リリースノート の「ユーザ指定のクエリの優先」の項に記述例がありますが、新着情報を取得するクエリのパラメーターを $args で代入しておくと、新着順に取得することができそうです。

    プラグインの実装的には、もう少し改善の余地がありそうで、グローバル変数を参照するよりは、pre_get_posts フック内で、$wp_query->get( ‘orderby’ ); で指定がなされていたら、並び替えをしないなどの処理にした方がよさげですね。

    トピック投稿者 inocchi_68

    (@inocchi_68)

    jim912様

    ご回答ありがとうございます。
    自己の知識が不十分で、仰って頂いた事がニュアンスでしか
    理解できておりません(特にフック関係)事をお詫び申し上げます。
    分からない也に知らべまして、以下の様にしてみたのですが、
    並び順の状況は変わっておりません。
    仰って頂いた意図が汲み取れておりませんでしょうか?

    • ・『What’s New Generator』は停止。
    • ・『PHP Code for posts』を入れて固定ページにPHPを書けるようにする。
    • ・こちら→(http://wild-cards.net/wordpress-info/)を参考にして、
       固定ページに以下のコードを書く。
    <?php
    $args = array(
        'orderby' => 'modified',
        'order' => 'DESC',
        'numberposts' => '20',
    );
    global $post; $lastposts = get_posts( $args ); //表示件数とカテゴリID
    foreach($lastposts as $post) :
    setup_postdata($post);
    $post_title = $post->post_title;
    if(mb_strlen($post_title)>40) { //記事タイトルの文字数
    	$post_title = mb_substr($post_title,0,40).'...';
    }
    ?>
    <dl class="info_sample">
    <dt><?php echo date("Y.m.d  ", strtotime($post->post_date)); ?></dt>
    <dd>
    <?php
          $days=30; //Newをつける日数
          $today=date_i18n('U'); $entry=get_the_time('U');
          $diff1=date('U',($today - $entry))/86400;
          if ($days > $diff1){
            echo'<font color="ff0000">New!</font>';
             }
    ?>
    <a href="<?php echo get_permalink( get_the_ID() ); ?>" id="post-<?php the_ID(); ?>"> <?php echo $post_title; ?></a> ご参加いただきました。</dd>
    </dl>
    <?php endforeach; ?>

    並び順以外は問題なく、『numberposts』なども効いています。
    何卒よろしくお願い致します。

    トピック投稿者 inocchi_68

    (@inocchi_68)

    他にも方法を考えているのですが、
    固定ページのみ、『Intuitive Custom Post Order』を切る方法はありますか?

    モデレーター jim912

    (@jim912)

    <?php

    の直後に

    global $args;

    を追加してみてください。

    トピック投稿者 inocchi_68

    (@inocchi_68)

    jim912様

    思い通りの並び順になりました!!
    大変助かりました!誠にありがとうございました!

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「記事一覧は自由に、新着情報ページは新着順に並べたい。」には新たに返信することはできません。