フォーラムへの返信

15件の返信を表示中 - 16 - 30件目 (全46件中)
  • フォーラム: 使い方全般
    返信が含まれるトピック: 投稿ページごとにテンプレを渡す方法

    参考にされたのはカテゴリーページで、今回は投稿ページですよね?
    ということは、

    $cat = get_category( intval( get_query_var('cat') ) );

    でカテゴリーのIDがとれていないのでは・・・?と思っています。
    get_the_categoryなどでカテゴリーIDを取得してからnobitaさんのコードを実行すればうまくいくのではないでしょうか・・・・?

    フォーラム: 使い方全般
    返信が含まれるトピック: 複数ループの並列方法

    答えとしては、jim912さんのご回答が全てです。
    query_posts()はメインクエリーを書き換えるものなので、再度cat=(カテゴリーのID)を指定しなければいけません。query_posts()ならオリジナルクエリを所持、ということで$query_stringを足しておけばカテゴリーの指定は不要です。

    オリジナルクエリの保持(ページングなど)

    WP_Queryの方も同様の理由から取れていません。

    そして・・・単純に「一番初めの投稿のarticleにidをつけたい」というだけなら、わざわざサブクエリーにせずとも通常のループで出来ることかと思います。

    処理的には
    ・「$wp_query->current_post === 0」だった場合(if)
    ・「 id=”big”」をつける(ifがtrueのとき)
    ・それ以外は何もつけない(ifがfalseのとき)

    これだけです。こちらの方が簡単ではないかな?と思います。

    フォーラム: 使い方全般
    返信が含まれるトピック: 固定ページのカラムについて

    ・固定ページにアクセスした時に、自分がアクセスしている固定ページの名前が左カラムに表示される

    get_query_var(‘page_id’)で現在のページのIDが取得できるので、このIDを元にページのタイトルは取得できます。

    ・特定の固定ページにアクセスした時にのみ、その特定ページの子ページも左カラム部に出てくるようにしたい!

    この先この「特定の固定ページ」は増えていったりするのでしょうか?
    増えない想定であればその特定の固定ページのIDを指定(get_page_by_path()でスラッグを元にIDを取得すると、もしテスト環境/本番環境などでIDが違う場合でも安心かと思います)し、wp_list_pages()で子ページを出力すればよいかと思います。
    増える想定であれば、カスタムフィールドやページテンプレートで振り分けるとよいかもしれませんね。

    お察しの通り、そのまま利用するわけではありません。
    要はget_categories()のparent=に親カテゴリーのIDを指定してあげればいいので、

    $thisID = get_query_var('cat'); //親カテゴリのIDを取得
    $childCats = get_categories('parent='.$thisID); //子カテゴリを配列で取得
    foreach($childCats as $childCat) :
    	$childPosts = get_posts('category='.$childCat->term_id.'&numberposts=4'); //子カテゴリに属する投稿を4件取得
    	global $post;
    	if ($childPosts) :
    		echo ''; // 子カテゴリ○の最初の画像用の記述をここに
    		echo ''; // 子カテゴリ○のタイトル用の記述をここに
    		echo '<ul>';
    		foreach ( $childPosts as $post ) : //子カテゴリの投稿を表示するforeach
    			setup_postdata($post);
    			echo ''; // 子カテゴリ○の最新記事の表示内容用の記述をここに
    		endforeach;
    		echo '</ul>';
    		echo ''; // 子カテゴリ○の全ての記事を見る⇒用の記述をここに
    	endif;
    	wp_reset_postdata();
    endforeach;

    こんな感じで書いていけばご要望のことが出来ると思います。

    その中には子カテゴリが存在せず、親カテゴリから直接最新記事×4の表示がしたいものもあります。

    この分岐方法は前回レスのリンク先フォーラムを参考にしてください。

    方法的には下記のフォーラム記事と似たようなことをすればよいのではないかなと思いますが、
    いかがでしょうか?

    トップページに親子カテゴリの記事一覧を表示
    http://ja.forums.wordpress.org/topic/21069?replies=9

    トピック投稿者 Chiaki

    (@mel_cha)

    お騒がせしました!
    add_filterの$priorityに9999を入れると動作しました・・・!
    これで解決とさせていただきます。

    トピック投稿者 Chiaki

    (@mel_cha)

    あまり自信はないのですが・・・出来たかもしれません!

    $wpdb->flush();
    $field1 = get_field('custom1');
    
    $results = $wpdb->get_results( $wpdb->prepare(
    	"SELECT DISTINCT F2.meta_value
    	FROM $wpdb->posts AS P
    	LEFT JOIN $wpdb->postmeta AS F1
    		ON P.ID=F1.post_id
    		AND F1.meta_key = 'custom1'
    	LEFT JOIN $wpdb->postmeta AS F2
    		ON P.ID=F2.post_id
    		AND F2.meta_key = 'custom2'
    	WHERE F1.meta_value = '%s'
    	AND post_type = 'post'
    	AND post_status = 'publish'
    ", $field1) );
    
    echo '<ul class="inblock-list">';
    foreach($results as $value) {
    	echo '<li>・<a href="'.get_home_url().'/?s='.$value->meta_value.'">'.$value->meta_value.'</a></li>';
    };
    echo '</ul>';

    少し疑問なのですが、「$wpdb->flush();」は入れておいたほうがいいのでしょうか?
    色々試している間、なぜか項目の反映が遅れることがあり、これを入れると解消されました。
    入れておくことで何か不都合が生じる可能性があるでしょうか?

    トピック投稿者 Chiaki

    (@mel_cha)

    >pluto1234さん

    ヒントありがとうございます!!
    列の SELECTや、色々なSQL解説サイトで調べながらSQL文に挑戦していたのですが、かなり行き詰っています。。

    根本的に書き直したりして、現在下記のコードで止まっています。

    $field1 = get_field('custom1');
    $field2 = get_field('custom2');
    
    $results = $wpdb->get_results( $wpdb->prepare(
    	"SELECT DISTINCT *
    	FROM $wpdb->posts AS P
    	LEFT JOIN $wpdb->postmeta AS F1
    		ON P.ID = F1.post_id
    		AND F1.meta_key = 'custom1'
    	LEFT JOIN $wpdb->postmeta AS F2
    		ON F1.post_id = F2.post_id
    		AND F2.meta_key = 'custom2'
    	WHERE post_type = 'post'
    	AND post_status = 'publish'
    ", $field1) );
    
    var_dump($results);

    お手数ですが、もう少しヒントを頂けないでしょうか。。

    どうぞ、よろしくお願い致します。

    トピック投稿者 Chiaki

    (@mel_cha)

    すみません。

    カスタムフィールドAの方は、別の箇所でも表示に使っているのでできればこのままカスタムフィールドで使いたいです。

    ページの全体像としては・・・

    <h1>ページタイトル<h1>
    <p>カスタムフィールドA</p>
    <div>本文</div>
    
    <h3>カスタムフィールドBの関連記事</h3>
    <ul>~</ul>
    
    <h3>カスタムフィールドAの関連項目</h3>
    <ul>~</ul>

    この

    <h3>カスタムフィールドAの関連項目</h3>
    <ul>~</ul>

    部分で、カスタムフィールドBの一覧を出したいです。
    (本来は記事一覧をずらっと出していたのですが、カスタムフィールドBの一覧を出すことになりました。。)

    トピック投稿者 Chiaki

    (@mel_cha)

    >gatespaceさん

    回答ありがとうございます。

    そうですよね・・・。
    すみません、補足が抜けておりました。

    カスタムフィールドA、カスタムフィールドB共に、入力欄となっています。
    確かに、カスタムタクソノミーでやろうと思えば出来ますが、
    投稿は全てCSVで一括管理するため、できれば毎回入力出来た方がいいだろう・・・という背景があります。

    CSV読み込みはCSVImporterを使用していますが、タクソノミーの階層構造はうまく読み込めないようなのです。

    また、カスタムフィールドBは、下記を参考に検索対象に含めています。
    WordPressでカスタムフィールドも検索対象にする
    ただ、これもタクソノミーURLを取得すればいい話ではありますが・・・。

    後出しですみません。。

    新着記事の表示方法はgoogleで「wordpress 新着記事」を検索すれば色々なコードが出てきますので、用途に近いコードを探してください。

    また、WordPressの「設定」→「表示設定」→「1ページに表示する最大投稿数」は何件にしてありますか?そこが1件になっていると、上記コードでは1件しか取得できません。もしくは、記述しているphpのテンプレートがfront-page.phpなど、固定ページを使用している場合も、記述を変えなければいけなかったように思います。

    固定ページに新着情報表示
    http://ja.forums.wordpress.org/topic/7817?replies=3

    フォーラム: 使い方全般
    返信が含まれるトピック: class名での条件分岐

    divについているclass=”on”とclass=”off”の部分を変更したい、と言うことでしょうか?

    単純にクラス名の出し分けだけで、classの付く場所にこだわらないのであれば、post_classにクラス名を追加するとよいのではないかと思います。

    フォーラム: 使い方全般
    返信が含まれるトピック: 固定ページにカテゴリーを全て表示したい

    ウィジェットのタイトルが出るのはショートコードで出力する、しないに関わらずデフォルトで出るものです。
    タイトルを出さない関連の回答としては既にありますので、参考になさってください。

    http://ja.forums.wordpress.org/topic/3569

    フォーラム: 使い方全般
    返信が含まれるトピック: 固定ページにカテゴリーを全て表示したい

    表示できたようでなによりです。

    ただ、少し気になることがあったのですが、
    固定ページに表示したため、
    固定ページのタイトルと、
    ウィジェットのタイトルが両方表示されるという
    状況になりました。

    とのことですが、どういった状況になっているのかがよくわかりません。
    ショートコードを追加したために起こったことでしょうか?

    get_categoriesはカテゴリーの情報を取得するだけなので、
    固定ページもウィジェットも関係ないはずですが。。

    タクソノミー名とはタグのことでしょうか?それともカスタムタクソノミーでしょうか?
    どちらにしろ、get_the_termsを使えば取得できます。

    get_the_terms
    http://elearn.jp/wpman/function/get_the_terms.html

15件の返信を表示中 - 16 - 30件目 (全46件中)