0

Wordpress テーマを変更していて、single.php および index.php テンプレートのラッパー div に異なる ID を使用する必要がある設計上の問題が発生しました。元の div の開始タグは、header.php テンプレートに存在し、次のようになります。

<div id="wrap" class="clearfix">

私の試みた変更は次のようになります。

<div id="<?php if ( is_single() ) { 'single-wrap' } else { 'wrap' } ?>" class="clearfix">

私も試してみました

<div id="<?php if ( is_single() ) { 'single-wrap' } elseif ( is_front_page() ) { 'wrap' } else { 'wrap' } ?>" class="clearfix">

<div id="<?php if ( is_single() ) { 'single-wrap' } elseif ( is_home() ) { 'wrap' } else { 'wrap' } ?>" class="clearfix">

これらのソリューションはどれも成功していません。実際、それぞれがテーマを完全に壊し、500 (Internal Server Error) を返し、サーバーがリクエストを実行しようとしている間に、予期しない条件 (ID 属性に入れた php if ステートメントだと思います) を指定します。 .

さて、以前に単純な Wordpress テーマを作成したことがあるので、テーマの階層がどのように機能するかを理解しています。また、Javascript と Python もかなり得意なので、プログラム ロジックを理解しています。これは PHP の構文上の問題ですか? それとも、私が見逃しているもっと深いものがありますか?

どんな助けでも大歓迎です!

(また、私が変更しようとしているテーマはAJ Clarke の Tetrisです。)

また、ID「single-wrap」は css で既に定義されていることにも言及する必要があります。

4

1 に答える 1

1

まあ、あなたはIDをエコーし​​ていません!

これを試して:

<div id="<?php if ( is_single() ) { echo 'single-wrap'; } else { echo 'wrap'; } ?>" class="clearfix">

singleまた、多くのテーマでは、archive、など、ページのタイプに基づいて body 要素にクラスが追加されます。CSS セレクターを使用して、変更が必要な で定義されているものをオーバーライドhomeするだけで、これを実現できる場合があります。body.single #wrap#wrap

于 2013-04-30T20:51:48.273 に答える