フォーラムへの返信

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • フォーラム: プラグイン
    返信が含まれるトピック: Ktai Styleでキャリア別テーマが適応されない
    トピック投稿者 mi_325

    (@mi_325)

    kurosquare様

    レスを頂いていたのに、ずっとお返事ができておらず申し訳ありません。(お返事、のち解決済みにしたつもりでおりました;;)
    具体的なソースを教えて頂き、大変助かりました!おかげ様で無事に振り分けができるようになりました。
    ありがとうございました!

    フォーラム: プラグイン
    返信が含まれるトピック: Ktai Styleでキャリア別テーマが適応されない
    トピック投稿者 mi_325

    (@mi_325)

    自己レスです。

    プラグインレベルでの根本的な解決ではないのですが、結局、共通テーマのテンプレートファイル上で、

    <?php
    $agent = $_SERVER['HTTP_USER_AGENT'];
    if(ereg("iPhone", $agent)):
    ?>
    <!--iPhone用の表示-->
    <?php else: ?>
    <!--携帯用の表示-->
    <?php endif ; ?>

    として表示を振り分けることで、共通テーマだけでiPhoneとその他携帯との表示を変えて対応することにしました。

    ですが、この方法ではandroid端末には非対応になってしまうなどの問題もありますので、引き続き、管理画面で設定したiPhone・Android端末用テーマが、正しく認識されるようにはどうすれば良いか、お分かりになる方が居られましたら、ご意見宜しくお願い致します。

    フォーラム: 使い方全般
    返信が含まれるトピック: 検索結果を表示順ランダムでリストしたい
    トピック投稿者 mi_325

    (@mi_325)

    方法についてご提案くださったお二方、どうもありがとうございました。
    大変遅くなりましたが、以下の方法でもって一通りの運用が行なえるようになりました。

    <?php
    query_posts(array(
    'orderby' => rand,
    'post_type' => page,
    'nopaging' => true,
    'meta_value' => $s,
    ));
     ?>

    また、メタデータとして同じ項目に複数の値を設定した物は、すべて別々の項目に振り分けて検索を行なうようにしました。

    ありがとうございました!

    フォーラム: 使い方全般
    返信が含まれるトピック: 検索結果を表示順ランダムでリストしたい
    トピック投稿者 mi_325

    (@mi_325)

    shokun0803 様

    早速のレスありがとうございます、そしていつもお世話になっております。

    教えて頂いたコードを実行したところ、ランダム表示・ページ分割無し・ページのみの抽出 は上手く行ったのですが、全部の固定ページがリストされてしまいました。どうやら、親ページがカスタムフィールドにその値を持っていると、その子ページも抽出されてしまうんですね。

    そこで、親ページだけが持っているカスタムフィールドの項目と値を、Codexの通り

    ‘meta_key’ => ‘フィールド名’,
    ‘meta_value’ => ‘値’,

    等として追記しましたら、親ページだけがきちんと表示されるようになりました!

    が。
    今度は、キーワードを何で検索しても、全ての親ページが表示されてしまいます…。
    URLに入っている、?s=rabbitが働いていないのは、もしかしてCodexで言うところの

    query_posts 関数はページのメインクエリを上書きし、置き換えます。

    ということなんでしょうか?

    検索では$sに検索ワードを保持していることがわかったので、meta_value => $s,としたら上手く行きそうなんですが、固定ページが持っている値が複数の場合(例:「動物」の項目に、「rabbit,ferret」 などとして複数値を持っている)、どちらか片方だけを検索しても出てきませんでした。query_postsを記述していない状態だと、部分一致?でも拾ってくれていたので、同じ動作にはならず…

    重ねてご助言いただけましたら幸いです。

    トピック投稿者 mi_325

    (@mi_325)

    shokun0803 様

    またもやレスが遅くなりごめんなさい!
    コードまでご提案いただき、ありがとうございました。
    二つ上のレスで書いていただいたロジックを参考にさせてもらって、二日間色々トライしてみた結果、おそらくスマートではない方法ですが想い通りの動作が実現できたのでご報告です。

    ・投稿カテゴリーを統合する親カテゴリーを作って、その親カテゴリーIDを親ページのカスタムフィールドに登録しておく
    (『猫の種類(cat_ID=1)』『猫のえさについて(cat_ID=2)』をそれぞれ子カテゴリーにして、親カテゴリー『猫について(cat_id=3)』をつくり、これを親ページ『猫のページ』のカスタムフィールド(meta_key=parentid)に登録しておく)

    一番新しい投稿があったページについて
    ・トップページで、『一番新しい投稿記事』を1件取り出し、その投稿カテゴリーから親カテゴリーを取り出す($mypost->category_parent)
    ・meta_key=parentidに、取得した親カテゴリー番号を持つ親ページを取得→表示

    二番目に新しい投稿があったページについて
    ・トップページで、『二番目に新しい投稿記事』を1件取り出し(offset=1)、以下同上。

    また、同じカテゴリーに二件以上投稿が続いた時に、トップページの親ページリストで同じコンテンツが続かないように、二番目に新しい投稿記事を取り出す時に、category=- .$id1.みたいな感じで、1番新しい投稿のカテゴリーIDを除外するようにしました。

    親ページを更新させてリストを作らないと…と思い込んでいたのですが、

    ページの内容を更新する方法は、更新すると考えるから難しくなるのであって、そのページを表示するたびに比較してリストを作り変えれば一見更新されているように見える

    といただいたヒントで、1件目だけ出力・2件目だけ出力…というやり方でなんとか想い通りの動作ができるようになりました。

    shokun0803様、アイデア・ヒントをありがとうございました!大変お世話になりました。
    添えて頂いたコードはまだわからない部分があるのでこれから調べるのですが、もしかしたら同じ動作をもっとスマートにできるのかも… がんばります。 

    トピック投稿者 mi_325

    (@mi_325)

    shokun0803 様

    前回に引き続き、レスありがとうございます!

    ええと、私の説明がわかりにくかったかもしれないので、もう一度整理させていただきます。

    現在wpで構築しているサイトは、親ページ1つと複数の子ページからなるコンテンツを一単位として、複数の単位で構成されています。
    (最初の例で言うなら、猫のコンテンツ、犬のコンテンツ、うさぎのコンテンツ……)

    内容の更新は、すべて投稿(posts)によって行い、投稿したカテゴリに対応するページで、get_posts()等を使ってカテゴリーIDを指定して投稿記事を取得することで行います。
    (つまり、投稿カテゴリー1つにつき、対応しているページ1つ があるということです)

    投稿カテゴリーに対応しているページは、すべて子ページです。
    ★投稿 → 対応する子ページに表示 > 親ページ > トップページ という状況です。

    ———-
    やりたいこと
    ・トップページ(index.php)で、最新情報のリストを表示して、記事が投稿されたらそれに対応しているページがリストアップされるようにしたい。(最新2件)
    ・リストは、投稿された記事自体のリストではなく、その記事(投稿ID)に対応しているページのリスト。(本来は親ページだけのリストが望ましいですが、子ページのリストでもそこから親ページの情報がひきだせますのでそれでもOK)

    投稿した記事から、そのカテゴリーに対応しているページの情報を引き出すことができれば…と思うのですが。

    ちなみに、投稿した記事のカテゴリーIDをカスタムフィールドの値として持っているページをリストするなんてことは、できないのでしょうか、とこちらの記事をまとめながら思いついたので、少し挑戦してみます。

    引き続き、何かアイデアなどございましたらご提供いただけますと幸いです。

    トピック投稿者 mi_325

    (@mi_325)

    ↑ できそうですね。 と軽く書いたのですが、

    ・親ページを更新順に並べる
    ・子ページを更新順に並べる
    ・投稿を更新順に並べる

    は通常のget_posts()等で実行できましたし、

    ・子ページを更新順に並べてその親ページを表示する

    はget_postsの中でget_the_title($post->post_parent);とかget_permalink($post->post_parent);を実行することで解決できたのですが、肝心の、

    ・特定のカテゴリで記事を投稿する → そのカテゴリを登録してある子ページの更新順位を上げる(最終更新日を書き換える/ページの内容を更新する)

    を実現する方法がわかりません…。

    もう少し、アイデアなどご提供いただけましたら幸いです。

    トピック投稿者 mi_325

    (@mi_325)

    shokun0803 様

    レスありがとうございます!返答が遅くなってしまいごめんなさい。

    普通に子ページの最新リストを作成し、その子ページが属する親ページのURLを取得してリンク

    新しいアイデアをどうもありがとうございました!
    子ページは、対応する投稿カテゴリのIDをカスタムフィールド値として持っていますし、
    そのIDに投稿があったら、所属する子ページの何か(日付とか…?)を更新することはできそうですね。

    一度この方法で挑戦してみます。どうもありがとうございます!

    トピック投稿者 mi_325

    (@mi_325)

    taikiken様

    返信ありがとうございます!

    教えて頂いたように、get_postsの引数にpost_type=pageを指定することで、ページのループを作ることができました。
    get_postsでページに限定したループが作れるとは全く知らなかったので、本当に助かりました。
    お蔭様で、postのループで使うのと同じように<?php echo get_post_meta($post->ID,'***',true); ?>でページのメタデータを書き出すことができました。あとはスタイルで整形をして、イメージ通りの出力ができそうです。

    taikiken様、本当にありがとうございました!

    トピック投稿者 mi_325

    (@mi_325)

    自己レスです。
    最終的に、uniklo様もご紹介くださっているスレッドで書かれている方法で、wp-admin/menu-header.phpを直接編集して、管理メニューを追加する方法で実現することにしました。

    また、編集していて気がついたのですが投稿編集画面の「自分の投稿」リンクのあたりでも、思っているような動作が得られそうなので、もっとスマートな方法がないか考えてみることにします。

    uniklo様、どうもありがとうございました。

    トピック投稿者 mi_325

    (@mi_325)

    uniklo 様

    早速のご回答ありがとうございました。

    上記記事は既に拝読していたのですが、
    (最初の記事に書くべきでした、ごめんなさい!)
    ダッシュボードにリンクを表示させる…というのがイメージと少し違っていたので
    改めてトピックを立てた次第です。

    管理メニューに折角『投稿(編集)』『ページ(編集)』というリンクがあるので、
    そちらをクリックするだけで、既にソートされた状態が表示されれば、と思っております。

    よろしくお願いします。

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