yd2
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿タイプの子カテゴリアーカイブの表示hissyさん、ありがとうございます。
タクソノミーをカテゴリとして使っています。フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿タイプの子カテゴリアーカイブの表示パーマリンクは/%category%/%postname%/に変更しました。
フォーラム: 使い方全般
返信が含まれるトピック: single.phpでのページ送りがnotfoundになる追記です。
Top Level Categories Fixプラグインの導入や
全プラグインを無効にした場合も試してみましたが
解決できていません。フォーラム: マルチサイト
返信が含まれるトピック: ロリポップに設置したマルチサイトに独自ドメインを設定kurosquareさんにアドバイスいただいた方法で、
無事公開できました。ありがとうございました。フォーラム: 使い方全般
返信が含まれるトピック: 単一記事(single.php)をカスタムフィールドの順にページ送り同じページが表示されないよう&paged=’.$pagedを追加しましたが、
表示順は変わりません。
<?php query_posts($query_string.'&meta_key=date&orderby=meta_value&order=DECS&posts_per_page=1&paged='.$paged); ?>
そもそも、single.phpではquery_postsが使えないのでしょうか…。フォーラム: 使い方全般
返信が含まれるトピック: 単一記事(single.php)をカスタムフィールドの順にページ送りまったく的外れかもしれませんが、アーカイブと同様にできないかと思い、
query_posts('meta_key=date&orderby=meta_value=posts_per_page=1')
を試してみました。これですと同じページしか表示されません。
何とぞご教授いただければと思います。よろしくお願いいたします。フォーラム: 使い方全般
返信が含まれるトピック: カスタムフィールドから作成したアーカイブリストの昇順kzさん、前回に引き続きありがとうございます。
書いていただいた内容を元に、このようにしたところ
思い通りの表示を実現することができました。$query->set( 'meta_query' , $meta_query ); $query->set( 'year' , '' ); $query->set( 'date' , '' ); $query->set( 'meta_key' , 'date' ); $query->set( 'orderby' , 'meta_value' ); $query->set( 'order' , 'DECS' );
日付のカスタムフィールドが、数値ではなく文字列になっている(?)のが、
ややこしくなってしまった原因なのでしょうか。
ともあれ、やっと解決できました。本当にありがとうございました。
フォーラム: 使い方全般
返信が含まれるトピック: カスタムフィールドから作成したアーカイブリストの昇順kurosquareさん、すみません。勘違いをしていました。
上と同様にする必要があるとのことだったのですね。‘date’でソートしたい場合を調べていたのですが、
このような書き方は全く違うのでしょうか。add_action( 'pre_get_posts', 'my_pre_get_posts' ); function my_pre_get_posts( $query ) { if ( $query->is_year ) { $meta_query = array( array( 'key' => $query->get( 'meta_key' ), 'value' => $query->get( 'year' ), 'compare' => 'LIKE' ), 'meta_key'=> 'date', 'orderby'=> 'meta_value_num', 'order'=> 'ASC' ); $query->set( 'meta_query' , $meta_query ); $query->set( 'year' , '' ); $query->set( 'date' , '' ); $query->set( 'meta_key' , '' ); } }
フォーラム: マルチサイト
返信が含まれるトピック: ロリポップに設置したマルチサイトに独自ドメインを設定やはり設定を変えるだけではダメなんですね…。
スムーズに公開できるか不安ですが、
教えていただいたURLの内容を参考にして、
やってみようと思います。ありがとうございました。
フォーラム: 使い方全般
返信が含まれるトピック: カスタムフィールドから作成したアーカイブリストの昇順kurosquareさん、ありがとうございます。
$query = "$select FROM $wpdb->posts AS p $join $where GROUP BY SUBSTRING($field,1,4) ORDER BY m.meta_value, p.post_date DESC";
このように変更したところ、年別のリストの順番は変更されますが
記事の順番は変わりませんでした。フォーラム: 使い方全般
返信が含まれるトピック: カスタムフィールドの日付から年別アーカイブリストを作成できました!
こういう場面は多そうなのに、検索しても
あまり事例が出ておらずあきらめかけていました。
勉強して応用できるようにしたいと思います。
本当にありがとうございました。フォーラム: 使い方全般
返信が含まれるトピック: カスタムフィールドの日付から年別アーカイブリストを作成さっそくありがとうございます!
試したところソース部分は見えなくなりました。
ただ、出力されたリンク先に飛ぶと、年に関わらず、
全ての記事が表示されてしまいます。出力されているのは、このようなURLです。
http://○○○/2011/?meta_key=(仮)カスタムフィールドのキー別途、archive.phpへの記載などが必要でしょうか?
下記のようにソートするタグは入れています。
<?php query_posts('meta_key=(仮)カスタムフィールドのキー&orderby=meta_value'); ?>
フォーラム: 使い方全般
返信が含まれるトピック: カスタムフィールドの日付から年別アーカイブリストを作成kzさん
ありがとうございます!
まさか記事にしていただけるとは思いもよりませんでした。さっそく、教えていただいたソースの’data’を
‘カスタムフィールドのキー’に変更してfunctions.phpに貼り付け、
sidebar.phpには下記の記述を追加しました。<?php my_get_year_archives( array( 'date_field' => 'カスタムフィールドのキー', ) ); ?>
ところが、ブラウザで確認したところ、
下記のように一部のソースが表示されてしまいました。
—————————————————————
SELECT SUBSTRING(m.meta_value,1,4) ASyear
, count(p.ID) AS posts FROM wp_2_posts AS p INNER JOIN wp_2_postmeta AS m ON m.post_id = p.ID WHERE p.post_type = ‘post’ AND p.post_status = ‘publish’ AND m.meta_key = ‘カスタムフィールドのキー’ GROUP BY SUBSTRING(m.meta_value,1,4) ORDER BY m.meta_value DESC array(2) { [0]=> object(stdClass)#4227 (2) { [“year”]=> string(4) “2011” [“posts”]=> string(1) “2” } [1]=> object(stdClass)#4226 (2) { [“year”]=> string(4) “2010” [“posts”]=> string(1) “1” } }2011年
2010年
—————————————————————基礎が全くない状態なので、
初歩的なところで間違えているのかもしれません。
たびたび申し訳ございませんが、
誤りがあればご指摘いただければと思います。よろしくお願いいたします。