質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.47%

  • WordPress

    7419questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

【Wordpress】コメント欄が表示されないページがある

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 3,097

ShogoChicago

score 30

Wordpressでサイトの開発を行っています。
ほとんどを固定ページではなく投稿から作成しています。

コメント欄が表示されない

一部のカテゴリーはユーザーが書き込みできるようにしています。
serviceというカテゴリーを与えているページはすべてコメント欄が表示されるようにPHPを編集しました。
このカテゴリー内のほとんどのページはコメント欄が表示されているんですが、たまに投稿機能そのものが現れないページがあります。
検証してみると、<div class="col-full">ごと存在していませんでした。

【single.php】

<?php if ( has_category( 'service' )): ?>

<!--------------CommentArea--------------->
<div class="col-full">
  <div class="wrap-col">
    <?php comments_template( ); ?>
  </div><!-- ^ .wrap-col END-->
</div><!-- ^ .col-full END-->
<!--------------CommentArea END--------------->
<?php endif; ?>

原因がわかりません

Q&Aサイトなどいろいろ検索しましたが、コメント機能作成に関するものばかりで、一部の投稿のみコメント機能が表示されないという問題はあまり見られませんでした。

もし、改善できる可能性のある案をお持ちの方はどんな情報でも構いませんのでよろしくお願いします。

追記

single.phpです

<?php get_header(); ?>

<div class="sub-header">
    <!--<div class="bread">
    <ol>
        <li ><a href="<?php echo home_url(); ?>">
        <i class="fa fa-home"></i><span>TOP</span>
        </a></li>

        <li>
        <?php if( has_category() ): ?>
        <?php $postcat=get_the_category(); ?>
        <?php echo get_category_parents( $postcat[0], true, '</li><li>' ); ?>
        <?php endif; ?>
        <a><?php the_title(); ?></a>
        </li>

    </ol>
    </div> -->
    <div class="breadcrumbs">
    <?php if(function_exists('bcn_display'))
    {
    bcn_display();
    }?>
    </div>
</div>



<div class="container">
<div class="contents">
    <?php if(have_posts()): while(have_posts()): 
    the_post(); ?>
    <article <?php post_class( 'kiji' ); ?>>

    <div class="kiji-tag">
    <?php the_tags( '<ul><li>', '</li><li>', '</li></ul>' ); ?>
    </div>

    <h1 id="pagetitle"><?php the_title(); ?></h1>



    <?php the_content(); ?>

    <?php wp_link_pages( array(
        'before' => '<div class="pagination"><ul><li>',
        'separator' => '</li><li>',
        'after' => '</li></ul></div>',
        'pagelink' => '<span>%</span>'
    ) ); ?>


    <?php if( has_category() ) {
        $cats = get_the_category();
        $catkwds = array();
        foreach($cats as $cat) {
            $catkwds[] = $cat->term_id;
        }
    } ?>
    <?php
    $myposts = get_posts( array(
        'post_type' => 'post',
        'posts_per_page' => '4',
        'post__not_in' => array( $post->ID ),
        'category__in' => $catkwds,
        'orderby' => 'rand'
    ) ); 
    if( $myposts ): ?>

<?php if ( has_category( 'service' )): ?>
<!--------------CommentArea--------------->
<div class="col-full">
  <div class="wrap-col">
    <?php comments_template( ); ?>
  </div><!-- ^ .wrap-col END-->
</div><!-- ^ .col-full END-->
<!--------------CommentArea END--------------->
<?php endif; ?>

    <aside class="mymenu mymenu-thumb mymenu-related">
    <h2>関連記事</h2>
    <ul>

        <?php foreach($myposts as $post):
        setup_postdata($post); ?>
        <li><a href="<?php the_permalink(); ?>">
        <div class="text">
        <?php the_title(); ?>
        </div>
        </a></li>
        <?php endforeach; ?>

    </ul>
    </aside>
    <?php wp_reset_postdata();
    endif; ?>



    </article>
    <?php endwhile; endif; ?>




</div>

<div class="sub">
    <?php get_sidebar(); ?>
</div>
</div>

<?php get_footer(); ?>


<?php //アクセス数の記録
$count_key = 'postviews';
$count = get_post_meta($post->ID, $count_key, true);
$count++;
update_post_meta($post->ID, $count_key, $count);
?>
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kei344

    2016/05/11 00:15

    single.php全体を追記することは可能でしょうか。

    キャンセル

回答 3

checkベストアンサー

+2

こんにちは。

僕からは、ちがう角度からアプローチ(WordPressの管理画面を使用)する方法を紹介させていただきます。

1)コメント欄が表示されていない投稿の編集画面で、右上にある「表示オプション」をクリック。
2)表示されたメニューの中の「ディスカッション」にチェックをいれる。
3)記事投稿欄の下方に表示された「ディスカッション」のメニューの中の「コメントの投稿を許可する」にチェックをいれる。

以上、ご参考いただければ幸いです。

以下、僕からの質問です。

<div class="col-full">
  <div class="wrap-col">
    <?php comments_template( ); ?>
  </div><!-- ^ .wrap-col END-->
</div><!-- ^ .col-full END-->

で、「<?php comments_template( ); ?>」をはさんでいる上下の各2行はオリジナルのグリッドシステム(grid.css)を使用しているということなのでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/18 14:06

    解決しました。
    ご記入いただいた指示通りに操作したところ、コメント欄が現れました。
    本当に助かりました。ありがとうございます。

    キャンセル

  • 2016/05/19 08:00

    ShogoOnoさん、コメント(フィードバック)をいただきありがとうございます。
    WordPressのちょっとしたエラーに関しては、管理画面から解決できることも少なからずありますので、とくに一部分に不具合が発生している場合などは管理画面の各項目をチェックしてみることをおすすめします。
    いずれにしても、僕の回答がお役にたてたようで、とてもうれしいです。

    キャンセル

0

<div class="col-full">ごと存在していない投稿は、serviceというslugのついたカテゴリーに属していないということはないですか?
それ以外にも表示される投稿とされない投稿との違いは何かありませんか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/10 23:04

    改めて確認しましたが、スラッグはすべて共通して振ってありました。
    同じテンプレートを使い回しで、投稿ごとに違うのは一部テキストのみという状態です。

    また、
    <?php if ( has_category( 'service' )): ?>
    この条件分岐に、コメントが表示されないページのパーマリンクを指定するということもやってみましたが、それでも出現しませんでした。

    キャンセル

  • 2016/05/18 14:09

    GeorgeCohtaさんの回答に従って操作したところ、コメント欄が出現しました。
    ご協力いただきありがとうございました。

    キャンセル

0

同じカテゴリを持つ記事が無いため表示されないのでは。
一度試しに if( $myposts ): の前にコメント用PHPを書かれてみてはいかがでしょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/11 02:16

    ありがとうございます。
    if( $myposts ): の前や、
    <?php the_content(); ?>の列の下に書いてみたりとやってみましたが、いずれも一部のページではコメントが表示されないという状態は変わりませんでした。

    キャンセル

  • 2016/05/11 02:28

    $cats = get_the_category(); の後で var_dump($cats);をして、表示されない記事に「service」が入っているか確認してみてください。

    キャンセル

  • 2016/05/11 05:37

    ありがとうございます。
    エラー文が表示されたので、少し前進したような気がします。
    エラー文の一部を見てみると、
    ["slug"]=> string(7) "service"
    というふうになっていたので、スラッグが振られていないというのはないかと思います。

    キャンセル

  • 2016/05/11 10:45

    var_dumpは変数を出力する関数なので、エラー文ではないと思いますが、その部分を質問文に追記できますか?

    キャンセル

  • 2016/05/18 14:08

    GeorgeCohtaさんの回答に従って操作したところ、コメント欄が出現しました。
    WPの初歩的な操作だったのに、phpの問題かと勘違いしてしまっていました。
    申し訳ありませんでした。
    ご協力いただき、本当にありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.47%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • WordPress

    7419questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。