フォーラムへの返信

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック投稿者 yua0209

    (@yua0209)

    ご返答いただいたにもかかわらず、お礼が大変遅くなってしまい申し訳ありませんでした!

    PDFへのリンクはお教えいただいたソースコードに差し替えました。
    ありがとうございます。
    真ん中の ? はなんなのか等、知識不足なのでこちらは勉強します。

     ***

    本題のご回答いただいた部分、

    >1.get post type で、投稿タイプの判別を行い
    >2. 投稿タイプが renraku だったら、条件分岐でURLを変更

    ですが、初心者な上に制作時から時間がたちすぎたため、
    get post typeをどう使うかが調べてもわからず(教えて頂いたのにすみません)、
    結局、該当部分の下でget_post_typeを使っていたため、そちら(カテゴリー名を表示させるための変数)を流用しました。

    結果として、投稿タイプではなくカテゴリー名(function.phpで指定したカスタム投稿タイプのラベル名)で
    条件分岐をすることで、無事任意のカテゴリーでPDFに直リンクができました!

    <?php
    	$customname = get_post_type_object( get_post_type() )->labels->singular_name;/*ラベルを変数に格納*/
    	if($customname =="業務連絡"){
    	echo get_post_meta($post->ID, 'pdf', true) ? wp_get_attachment_url( get_post_meta($post->ID, 'pdf', true) ) : get_permalink();}
    else{echo the_permalink();}
     ?>

    今後のために、投稿タイプでの分岐もできるよう改めて勉強します。
    ありがとうございました。

    トピック投稿者 yua0209

    (@yua0209)

    wp_reset_postdata() を、wp_reset_query() に変更してみてください

    ためしたところ、正常に動作しました!!ありがとうございます!!
    ためしに、条件にcat=-1を追加しても問題なく動作できました。

    リセットタグが間違っていることはわかっていたのですが、
    制作中の動作確認で、wp_reset_query()にすると
    なぜかカスタム投稿のすべて表示されるという現象が起きていたので
    よくわからないままpostdataにしておりました・・・
    今なぜ正常になったのかもわかっていませんが、勉強します。

    新しい関数という is_main_query についても勉強します。
    お二人とも、ありがとうございました!

    余談ですが、このリセットタグを修正することにより、
    実はもうひとつの悩みのタネであった
    ≪次の5件 | 前の5件≫ が ≪次の5件前の5件≫ と表示されてしまう
    というバグも直りました。
    ありがとうございました。

    トピック投稿者 yua0209

    (@yua0209)

    失礼しました。慌てて、nobitaさんが検証してくださったコードを試さずにレスを投稿してしまいました。
    挑戦してみて、またご報告します。ありがとうございます!

    トピック投稿者 yua0209

    (@yua0209)

    gatespaceさま、nobitaさま、ありがとうございます。

    cat=-1をはずし、

    <?php
    $paged = get_query_var('paged');
    query_posts('posts_per_page=10&paged='. $paged);
    ?>

    現在このコードになりましたが、変わらないままです。

    また、nobitaさんがおっしゃる通り、まだ運営を始めたばかりで記事は少ないです。
    社内で運用しているブログで、公開後にこのバグ?に気づいたため、
    gatespaceさんのおっしゃるテンプレートを元に戻すというのが困難なのですが、
    仮の環境をつくってやってみます。

    ちなみに、実はindex.php内であと2つquery_postsを使っています。
    loop.php内でリセットタグをいれてるのはこのためなのですが、
    ページ送りができないのはこれが関係していたりするのでしょうか…。

    ※loop.phpより上の部分に、カスタム投稿タイプで作ったお知らせ情報をいれる以下の2つがあります。

    <?php query_posts('post_type=info&posts_per_page=1'); ?>
    <?php if(have_posts()) : while(have_posts()) :the_post(); ?>
    
    	<?php the_content(); ?>
    
    <?php endwhile;endif; ?>
    <?php wp_reset_postdata(); ?>
    <?php query_posts('post_type=topnews&posts_per_page=1'); ?>
    <?php if(have_posts()) : while(have_posts()) :the_post(); ?>
    
    	<?php the_content(); ?>
    
    <?php endwhile;endif; ?>
    <?php wp_reset_postdata(); ?>

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