1

アクセスする内部ページに応じて、ヘッダーの背景画像を変えようとしています。現在、すべての内部ページに同じ画像があり、php コードを条件付きで変更する必要があります。連絡先ページの場合のように、1.jpg をヘッダー img として設定します。サービスページで、2.jpg をヘッダー img などに設定する場合、アイデアが得られます。これは、友人のために改善しようとしているこの wp テーマで見つかった php コードです。

        <div class="bgtop">
      <?php 
        //display featured image if one exists
        $featimage = get_bloginfo('stylesheet_directory') . "/images/pageheader.png";

        if ((has_post_thumbnail( $post->ID ))&&(!is_single()&&(!is_category())) ){

          $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' ); 
          $featimage = $image[0];
             } 

      ?>


      <div class="pageheader" style="background: url(<?php echo $featimage; ?> ); background-position: center top;">
          <div class="centermenu">
         <div class="pagelogo">
              <!--<a href="<?php bloginfo('home'); ?>">
                  <img src="<?php bloginfo('stylesheet_directory'); ?>/images/indexlogo.png" alt="logo" />
                </a>-->
    </div> 
4

2 に答える 2

0

WordPress のバックエンドでこれを管理したい場合: WordPress 用の高度なカスタム フィールド プラグイン ( http://wordpress.org/plugins/advanced-custom-fields/ ) を使用できます。これにより、すべてのページ、さらにはすべての投稿に背景画像を入力できるフィールドを追加できます。

次に、header.php テンプレート ファイルで、body タグのどこかにショートコードを追加します。

<body background="(<?php the_field('background_image')" ?>)">

現在のページに応じて、その背景画像が表示されます。


プロセスを自動化したい場合: 「bg」というフォルダーを作成し、ページと同じ名前の画像を作成できます。たとえば、about.php の場合、about.jpg を使用できます。

次に、ページ名を受け取り、背景画像をその名前に設定するスクリプトを作成します。これをheader.phpテンプレートのファイルに配置すると、次のようになります。

 $page = end(explode("/",$_SERVER['REQUEST_URI']));
 $image = str_replace("php","jpg",$page);

次に使用します。 <body background="bg/<?php print $image ?>">

これは、画像ファイルを保持していることを前提としていますが、http://www.yoursite.com/bg/ショートコードを使用してこれらの画像をテーマ内に保持することもできます<?php echo get_template_directory_uri(); ?>

于 2013-06-27T18:12:39.427 に答える
0

まあ..それは構造的なものです。彼らがどのページにいるかをどのように判断していますか?ユーザーはリンクをクリックしますか? サーバーが利用できる情報を使用して、提供するコンテンツを決定します。1 つのスクリプトを使用してすべてのページを提供している場合、ユーザーがリンクをクリックしたときにパラメーターを渡す必要があります。これは、リンクにパラメーターを持たせることで実行できます。

次のようにマークアップします。

<a href='default.php?page=home'> Navigate To Home </a>
<a href='default.php?page=blog'> Navigate To Blog </a>

php のように:

if($_POST['page'] == "home")
    echo $homeheader;
elseif($_POST['page'] == "blog")
    echo $blogheader;

ただし、通常は、いくつかの共通要素 (テンプレートと呼ばれる) を含む複数の php ページを作成するだけです。これは、サイト全体を提供する 1 つの php スクリプトを作成するよりも、物事をきれいに保つのに役立ちます。

于 2013-06-27T17:48:11.660 に答える