2014-09-30 56 views
0

我必須添加一些簡單的HTML到客戶端的WordPress網站的主頁。起初,我將代碼添加到header.php中,所有內容都看起來像是應該如何工作。但是,然後我意識到,當我在主頁上需要它時,它會顯示在每個頁面上。獲取自定義HTML顯示在homepage.php

因此,我嘗試在homepage.php中的get_header之後添加相同的HTML,然後在index.php中添加相同的HTML,但是當我將代碼添加到這些頁面時,什麼也沒有顯示。

無論我把HTML放在homepage.php或index.php中,它都不會顯示。毫無疑問,我是新來的WordPress。

我是否需要製作模板或使用一些代碼在這兩個頁面中的任何一箇中引入HTML?它爲什麼顯示在header.php中?

我嘗試使用沒有快樂:

if (is_home()) { 

主頁的代碼是在這裏,如果有幫助:

<?php 
/** 
Template Name: Homepage 
* 
*/ 
get_header(); ?> 
<?php $general_options = get_option('meanthemes_theme_general_options'); ?> 
<?php $content_options = get_option ('meanthemes_theme_content_options'); ?> 
<?php if(isset($general_options[ 'hide_slider' ])) { 
// do nothing 
} else { 
?> 
<section class="hero flexslider"> 
<article class="wrapper"> 
<div class="flex-container"></div> 
<ul class="slides"> 
<?php 
$bannerPortfolio = $general_options[ 'swap_slider' ]; 
if(!$bannerPortfolio) { 
query_posts(array ('posts_per_page' => 3)); 
while (have_posts()) : the_post(); 
?> 
<li> 
<h2> 
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a> 
</h2> 
<div> 
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php echo excerpt_clip(get_the_excerpt(), '28'); ?> <?php _e('[...]','meanthemes'); ?></a> 
</div> 
<time class="time" datetime="<?php the_time('Y-m-d', '', ''); ?>"><?php the_time('jS M Y') ?></time> 
</li> 
<?php endwhile; wp_reset_query(); ?> 
<?php 
} else { 
?> 
<?php 
query_posts(array('post_type' => 'portfolio', 'order' => 'desc', 'posts_per_page' => '3')); 
?> 
<?php if (have_posts()) while (have_posts()) : the_post(); ?> 
<li> 
<hgroup> 
<h2> 
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a> 
</h2> 
<div> 
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php echo excerpt_clip(get_the_excerpt(), '48'); ?> <?php _e('[...]','meanthemes'); ?></a></div> 
</hgroup> 
</li> 
<?php endwhile; ?> 
<?php } ?> 
</ul> 
</article><!--/article.wrapper --> 
</section> 
<script> 
jQuery(window).load(function() { 
    jQuery('.flexslider').flexslider({ 
      animation: "fade", // animation type fade or slide 
      slideshowSpeed: <?php echo sanitize_text_field($general_options ['slider_timer']); ?>, // sections between transitions 
      directionNav: true, // show previous and back 
      controlNav: false, 
      controlsContainer: '.flex-container' 
    }); 
}); 
</script> 
<?php } ?> 
<?php if($general_options[ 'show_portfolio' ]) { ?> 

    <section class="wrapper portfolio"> 
     <article> 
      <hgroup> 
       <h2><?php echo balanceTags($content_options['we_do']); ?></h2> 
      </hgroup> 
      <div><?php echo balanceTags($content_options['we_do_summary']); ?></div> 
     </article> 
     <?php 
     query_posts(array('post_type' => 'portfolio', 'posts_per_page' => '4', 'orderby' => 'date', 'order' => 'desc')); 
    ?> 
    <?php if (have_posts()) while (have_posts()) : the_post(); ?> 
      <aside> 
       <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail('portfolio-thumb'); ?></a> 
       <hgroup> 
        <h3><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3> 
       </hgroup> 
       <div><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php echo excerpt_clip(get_the_excerpt(), '14'); ?><?php _e('[...]','meanthemes'); ?></a></div> 
      </aside> 
<?php endwhile; wp_reset_query(); ?> 
    </section> 
<?php } ?> 
<script> 
jQuery(document).ready(function() { 
jQuery('body').addClass("home"); 
}); 
</script> 
<?php get_footer(); ?> 

回答

1

Howlin的例子應該工作。另一種解決方案是在主題目錄中創建一個front-page.php,將page.php中的內容複製到它,併爲主頁(首頁)添加特定的HTML代碼。

訪問http://codex.wordpress.org/Template_Hierarchy以瞭解在哪種情況下調用哪個模板。

訪問http://codex.wordpress.org/Conditional_Tags獲取條件標籤,您可以使用例如在header.php

+0

謝謝。你真的救了我。我創建了一個front-page.php並將我的代碼放入,並且工作正常!有一些問題;沒有顯示名爲page-right的自定義側欄模板。但我已經使用側邊欄小部件來替換該內容。 – DaniB 2014-10-01 10:06:09

0

您可能需要嘗試is_front_page代替。

if(is_front_page()){ 

is_home作品,如果你有博客文章顯示在主頁上和is_front_page如果主頁被設置爲一個靜態頁面。

+0

感謝您的幫助。當我打開header.php時,發現在homepage.php模板文件中沒有文檔類型。你認爲這可能嗎?我可以像任何其他文件一樣將文檔添加到文件中嗎? – DaniB 2014-09-30 20:37:27

+0

可能應添加文檔類型。 – Howli 2014-09-30 20:53:02

+0

不,添加Doctype不起作用。我甚至嘗試將HTML添加到索引頁面,但這樣做並不會使其顯示。如果HTML只會通過標題顯示,我似乎在做一些根本性錯誤。編輯 - 我試圖製作一個模板,並從主頁調用<?php get_template_part('box-template'); ?>和get_header(); ?>,但這也不起作用。 – DaniB 2014-09-30 21:03:42