トップページに置いた固定ページの記事が作成した通りに反映されない

Simplicityの特徴 フォーラム Simplicity2に関する話題何でも トップページに置いた固定ページの記事が作成した通りに反映されない

  • このトピックには7件の返信、1人の参加者があり、最後にhidekichiにより9年、 11ヶ月前に更新されました。
7件の返信スレッドを表示中
  • 投稿者
    投稿
    • #46744
      鈴木
      ゲスト

      お世話になります。

      以前の記事でもご相談させてもらいました。
      トップページに固定ページと投稿ページを混在させて表示したい

      1つ問題がありまして、ご相談させもらいます。

      任意の固定ページをトップページに表示はできました。しかし、その固定ページ内でH2タグを使ったり表を挿入したりしても、表の枠が表示されなかったりH2の外枠の色がつかず「作成したとおりにトップページでの表示」が反映されません。プレビュー画面では、しっかり表の枠やH2の外枠が色がついて表示されるのですが・・・

      でもその固定ページをトップページではなく、1つの固定ページで表示するとしっかり表の枠やH2の色表示が反映されて表示されます。

      まとめると、「固定ページではしっかり作成したとおり反映表示されますが、その固定ページをトップページに置くと作成したとおりに表示されない」ということです。

      解決策があれば教えていただきたいです。
      よろしくお願いいたします。

    • #46747
      Hidekichi
      ゲスト

      そのサイトを見てみないと正しくは回答できませんが、おそらくはセレクタの問題かと思います。
      本来の表示からすれば、イレギュラーな事をされているため、cssが対応できていないのではなかろうかと思います。
      なので、現在のhtmlがどうなっているかを確認して、そのhtml構造にあったcssを新たに子テーマstyle.cssに追記していけば正しく表示されるのではなかろうかと思います。

    • #46748
      鈴木
      ゲスト

      Hidekichi様

      いつも迅速で丁寧な対応をいただきありがとうございます。

      >現在のhtmlがどうなっているかを確認して
      >そのhtml構造にあったcssを新たに子テーマstyle.cssに追記

      具体的には、親テーマのCSSを確認して対策すればいいのですかね。なんとか自分でできることは調べてやりたいと思っていますが、分からないことが多いです。

      親テーマは全く追記などの操作をしていないのでsinmplicityのデフォルトのままなのですが何をすればいいのか抽象的でもいいので教えて頂けますでしょうか?

      ご迷惑をおかけして申し訳ありません。

    • #46751
      technote
      ゲスト

      例えば固定ページの本文に関しては

      <article class="article">
      <div id="the-content" class="entry-content">
      
      </div>
      </article>
      

      で囲めばデザインが適用されると思いますが、固定ページと全く同じように表示させるにはthe_content関数と同様のことをする必要があります。
      簡単にやるには以下のようにします。

      <?php
      $page_id = 14;    //xxxに 固定ページIDを入力
      $GLOBALS['post'] = get_post($page_id);
      setup_postdata($page_id);
      ?>
      <article class="article">
      	<div id="the-content" class="entry-content">
      	<?php the_content();?>
      	</div>
      </article>
      

      タイトルや投稿日等も必要であればsimplicity2/page.phpを参考にすればよいと思います。

      <article class="article">
      	<header>
      		<h1 class="entry-title"><?php echo get_the_title(); ?></h1>
      		<p class="post-meta">
      			<?php get_template_part('datetime') //投稿日と更新日?>
      
      			<?php get_template_part('edit-link') //編集リンク?>
      
      			<?php wlw_edit_post_link('WLWで編集', '<span class="wlw-edit"><span class="fa fa-pencil-square-o fa-fw"></span>', '</span>'); ?>
      		</p>
      	</header>
      	<div id="the-content" class="entry-content">
      	<?php the_content();?>
      	</div>
      </article>
    • #46753
      hidekichi
      ゲスト

      > H2の外枠の色がつかず

      例えばh2は

      h2 {
        なんちゃら
      }
      
      .article h2 {
        なんちゃら
      }

      とcssで設定されているわけです。h2だけのものはどこに書いてあってもそのプロパティが反映され、.artcle h2とあると.articleの中のh2は、h2だけのプロパティを継承して、.article h2の設定でそれを上書きしていることになります。

      h2 {
        font-size: 20px;
      }
      
      .article h2 {
        font-size: 24px;
      }

      もしこうあれば、h2全般的には20pxのフォントなわけですが、.article h2はpxになると言うことですよね?
      で、これらを子テーマstyle.cssで更にカスタマイズして、背景色をつけたりしているわけです。

      <h2 class="header2"></h2>このようにclassがあれば、.header2に該当するものはどこになっても.header2の設定が適用されますが、

      <article>
        <h2></h2>
      </article>
      
      <div class="article">
        <h2></h2>
      </div>

      このようなhtmlの構造であれば、前者はh2全般的な設定、前に書いたスタイルなら20pxのfont-sizeで、後者は.article h2ですから24pxのfont-sizeになるということです。

      さてここで、technoteさんが提示してくれたようにスクリプトを修正したとすると、記事部分は<?php the_content();?>に出力されることになります。その親となる要素には.articleと#the-contentがあることになります。
      画面内のhtmlの中に、.articleや#the-contentが1つしか無い場合は本来のsimplicityと同じですので、今までのcssが正しく反映されると思います。これが例えば最初だけ全文表示とか、全文表示のような場合は#the-contentが複数ある場合などがあり、全体的な同じなら問題ないですが、最初だけ全文表示の時にその中身のh2だけというような事をする場合は、#the-content:first-of-type{…}などを利用する必要がある場合もあります。

      ここらから、目的の要素がどこにあるかを判断するために、どの親クラスやIDなどから辿ればよいか、どのようにセレクタを書けばよいかはhtmlの構造に依存します。

    • #46755
      鈴木
      ゲスト

      technote様、Hidekichi様

      とてもご丁寧にありがとうございます。
      教えて頂いたとおりに行ったら反映されました。
      これから勉強していきます。

      もう1つだけ伺っていいでしょうか?

      >タイトルや投稿日等も必要であればsimplicity2/page.phpを参考にすればよいと思います。

      固定ページのタイトルだけ反映させたいのですが、何度やってもうまくいきません。
      投稿日時はいらないのですが、タイトルだけ反映させたいです。

      申し訳ありません。

    • #46756
      みき
      ゲスト

      そういえばそこまでやってなかった・・・
      ごめんなさい

    • #46758
      hidekichi
      ゲスト

      #46753
      ☓ .article h2はpxになると言うことですよね?
      ○ .article h2は24pxになると言うことですよね?

      > 固定ページのタイトルだけ反映させたいのですが、何度やってもうまくいきません

      #46751の真ん中と下のスクリプトを見比べて、HTMLの構造をそのままに必要な部分を追加すればよいということかと。

      <h1 class="entry-title"><?php echo get_the_title(); ?></h1>

      で拾えないのであれば、既に固定ページのIDはわかっているわけですから、

      <h1 class="entry-title"><?php echo get_the_title($page_id); ?></h1>

      とか

      <?php
      $page_id = 14;    //xxxに 固定ページIDを入力
      $pageTitle = get_the_title($page_id);
      $GLOBALS['post'] = get_post($page_id);
      setup_postdata($page_id);
      ?>
      <article class="article">
      <header>
      <h1 class="entry-title"><?php echo $pageTitle; ?></h1>
      
      //閉じタグ面倒くさいので省略

      みたいにしても良いんじゃないですかね。「なんちゃら()」というのはたいてい関数です。なんちゃらと言う関数にカッコ内の引数(ひきすう)を渡して、実行結果を$なんちゃらの変数に入れたりします。
      これら関数は、Simplicityの場合わいひらさんが独自に実装してあるものもありますがその多くはwordpressの関数なので、codexであったりでその内容を調べることができます。これらを調べることで新たな発見や、使い方のアイデアを見つけることもできますので、わからないことはどしどしぐぐってみてください。
      wordpressの関数で見つからない場合はphpの関数です。それでも見つからない場合は独自に実装されたものかも知れないので、親テーマfunctions.phpを検索してみるとよいかと思います。

7件の返信スレッドを表示中
  • このトピックに返信するにはログインが必要です。
スポンサーリンク
アドセンス(大)
アドセンス(大)