フォーラムへの返信

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • usaginomori

    (@usaginomori)

    Twenty ElevenでStandard Widget Extensionsを入れていますが、Standard Widget Extensionsに関係なく私のところでは同じようなことになりました。

    @media (max-width: 800px)
    #main #secondary が float: none;になっていますが

    #main #secondary {
        float: left;
    }

    と子テーマのCSSに書き加えたら直りました。私の環境独自かもしれませんが、一応ご報告いたします。

    トピック投稿者 usaginomori

    (@usaginomori)

    何とか自己解決いたしました。

    <?php $wpdb->show_errors(); ?>
    <?php $wpdb->print_error(); ?>

    を 関数リファレンス/wpdb Class
    にあるのをみつけて確かめたところ、SQLではエラーがないようだったので、よく見直したところ、pre_get_posts でタームで絞り込んでいないことが原因でした。 ’tax_query’ を追加してようやく希望の表示ができるようになりました。ちょっとカスタマイズしたいと思うと難しいですが、勉強になりました。

    トピック投稿者 usaginomori

    (@usaginomori)

    その後わずかな進展はあったのですが、解決には至っておりません。
    phpMyAdminで試したところ、次のようなSQLで「past」タームのみが「opendate」の日付の降順で取得できるのを確認できました。
    SQL

    SELECT *
    FROM wp_posts
    INNER JOIN wp_term_relationships AS tr ON ( wp_posts.ID = tr.object_id )
    INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id )
    WHERE tr.term_taxonomy_id = '18'
    AND wp_postmeta.meta_key = 'opendate'
    ORDER BY meta_value DESC , post_date DESC

    そこで、functions.phpをいろいろ書き換えてみたところ、現状では、「past」のまったくない年は、サイドバーに表示されなくなりました。しかし、「past」のある年には、ほかのタームの投稿も一緒に表示されてしまいます。
    また、サイドバーの「年」に表示されていない年もurlでアクセスしてみると、404にはならず、ページが作成されているようです。
    現在の記述は、http://pastebin.com/hUe44dhR の22行目から26行目を

    $field  = 'm.meta_value';
        $select = "SELECT SUBSTRING($field,1,4) AS 'year', COUNT(p.ID) AS posts";
        $where  = "WHERE tr.term_taxonomy_id = '18' AND p.post_type = 'sche' AND p.post_status = 'publish'";
        $where .= $wpdb->prepare( ' AND m.meta_key = %s', $date_field );
        $join   = " INNER JOIN $wpdb->term_relationships AS tr ON (p.ID = tr.object_id)
        INNER JOIN $wpdb->term_taxonomy AS tt ON (tr.term_taxonomy_id = tt.term_taxonomy_id )
        INNER JOIN $wpdb->postmeta AS m ON (p.ID = m.post_ID)";

    に、書き換えています。
    知識が足りないため、見当違いのことをしているかも知れません。
    引き続き、どうぞアドバイスをよろしくお願いいたします

3件の返信を表示中 - 1 - 3件目 (全3件中)