需要 Wordpress 主题 PHP 帮助

Wordpress Theme PHP help needed

我正在使用高级 Wordpress 主题创建我的网站,当我使用自定义主题 header 时,该主题会自动将我的博客 header 和社交图标放置在我上传的全宽置顶大图中post 内。示例见此处:http://www.ravagedesign.com/freebies/greyice-hd-launcher-theme-icon-pack-released/

我想让 header 和社交图标显示在全宽图形下方,如下所示:http://www.ravagedesign.com/freebies/greylime-hd-launcher-theme-icon-pack-released/ (请注意,我已经使用滑块插件实现了这一点,但由于增加了页面加载时间和组织不佳,它不是一个选项。

我已经缩小了 functions.php 文件中与 header/social 图标相关的代码部分的范围,并希望帮助修改它以显示我想要的方式,因为我对 php.

functions.php 与自定义相关的部分 header:

#-----------------------------------------------------------------#
# Custom page header
#-----------------------------------------------------------------# 

if ( !function_exists( 'nectar_page_header' ) ) {
    function nectar_page_header($postid) {

        global $options;
        global $post;
        global $nectar_theme_skin;

        $bg = get_post_meta($postid, '_nectar_header_bg', true);
        $bg_color = get_post_meta($postid, '_nectar_header_bg_color', true);
        $font_color = get_post_meta($postid, '_nectar_header_font_color', true);
        $parallax_bg = get_post_meta($postid, '_nectar_header_parallax', true);
        $title = get_post_meta($postid, '_nectar_header_title', true);
        $subtitle = get_post_meta($postid, '_nectar_header_subtitle', true);
        $height = get_post_meta($postid, '_nectar_header_bg_height', true); 
        $page_template = get_post_meta($postid, '_wp_page_template', true); 
        $display_sortable = get_post_meta($postid, 'nectar-metabox-portfolio-display-sortable', true);
        $inline_filters = (!empty($options['portfolio_inline_filters']) && $options['portfolio_inline_filters'] == '1') ? '1' : '0';
        $filters_id = (!empty($options['portfolio_inline_filters']) && $options['portfolio_inline_filters'] == '1') ? 'portfolio-filters-inline' : 'portfolio-filters';
        $text_align = get_post_meta($postid, '_nectar_page_header_alignment', true); 
        $fullscreen_header = (!empty($options['blog_header_type']) && $options['blog_header_type'] == 'fullscreen' && is_singular('post')) ? true : false;
        $bottom_shadow = get_post_meta($postid, '_nectar_header_bottom_shadow', true); 
        $bg_overlay = get_post_meta($postid, '_nectar_header_overlay', true); 

        (!empty($display_sortable) && $display_sortable == 'on') ? $display_sortable = '1' : $display_sortable = '0';

        //incase no title is entered for portfolio, still show the filters
        if( $page_template == 'template-portfolio.php' && empty($title)) $title = get_the_title($post->ID);

        if( !empty($bg) || !empty($bg_color) ) {  

        (empty($bg)) ? $social_img_src = 'none' : $social_img_src = $bg;
        (empty($bg)) ? $bg = 'none' : $bg = 'url('.$bg.')';
        (empty($bg_color)) ? $bg_color = '#000' : $bg_color = $bg_color;
        $height = (!empty($height)) ? preg_replace('/\s+/', '', $height) : $height;
        $not_loaded_class = ($nectar_theme_skin != 'ascend') ? "not-loaded" : null;     
        $fullscreen_class = ($fullscreen_header == true) ? "fullscreen-header" : null;
        $bottom_shadow_class = ($bottom_shadow == 'on') ? " bottom-shadow": null;
        $bg_overlay_class = ($bg_overlay == 'on') ? " bg-overlay": null;
        $ajax_page_loading = (!empty($options['ajax-page-loading']) && $options['ajax-page-loading'] == '1') ? true : false;

        $wrapper_height_style = ($fullscreen_header == true && ($post->post_type == 'post' && is_single()) || $ajax_page_loading == false) ?  null : 'style="height: '.$height.'px;"';

        if(!empty($parallax_bg) && $parallax_bg == 'on') { echo '<div id="page-header-wrap" class="'.$fullscreen_class.'" '.$wrapper_height_style.'>'; } ?>
        <div class="<?php echo $not_loaded_class . ' ' . $fullscreen_class . $bottom_shadow_class . $bg_overlay_class; ?>" id="page-header-bg" data-alignment="<?php echo (!empty($text_align)) ? $text_align : 'left' ; ?>" data-parallax="<?php echo (!empty($parallax_bg) && $parallax_bg == 'on') ? '1' : '0'; ?>" data-height="<?php echo (!empty($height)) ? $height : '350'; ?>" style="background-color: <?php echo $bg_color?>; background-image: <?php echo nectar_options_img($bg); ?>; height: <?php echo $height;?>px;">


            <div class="container"> 

                    <?php 
                    if($post->ID != 0 && $post->post_type && $post->post_type == 'portfolio') { ?>

                    <div class="row project-title">
                    <div class="container">
                    <div class="col span_6 section-title <?php if(empty($options['portfolio_social']) || $options['portfolio_social'] == 0 || empty($options['portfolio_date']) || $options['portfolio_date'] == 0 ) echo 'no-date'?>">

                        <h1><?php the_title(); ?></h1>

                        <?php 
                        $options = get_option('salient'); 

                        $back_to_all_override = get_post_meta($post->ID, 'nectar-metabox-portfolio-parent-override', true);
                        if(empty($back_to_all_override)) $back_to_all_override = 'default';

                        //attempt to find parent portfolio page - if unsuccessful default to main portfolio page
                        global $post;
                        $terms = get_the_terms($post->id,"project-type");
                        $project_cat = null;
                        $portfolio_link = null; 

                        if(empty($terms)) $terms = array('1' => (object) array('name' => 'nothing'));

                         foreach ( $terms as $term ) {
                            $project_cat = strtolower($term->name);
                         }

                         $page = get_page_by_title_search($project_cat);
                         if(empty($page)) $page = array( '0' => (object) array('ID' => 'nothing'));

                         $page_link = verify_portfolio_page($page[0]->ID);

                         //if a page has been found for the category
                         if(!empty($page_link) && $back_to_all_override == 'default') {
                            $portfolio_link = $page_link; 

                         ?>

                             <div id="portfolio-nav">
                                <ul>
                                    <li id="all-items"><a href="<?php echo $portfolio_link; ?>"><i class="icon-salient-back-to-all"></i></a></li>               
                                </ul>
                                <ul class="controls">                                 
                                    <li id="prev-link"><?php be_next_post_link('%link','<i class="icon-salient-left-arrow-thin"></i>',TRUE, null,'project-type'); ?></li>
                                    <li id="next-link"><?php be_previous_post_link('%link','<i class="icon-salient-right-arrow-thin"></i>',TRUE, null, 'project-type'); ?></li> 
                                </ul>
                            </div>

                    <?php  } 

                         //if no category page exists
                         else {

                            $portfolio_link = get_portfolio_page_link(get_the_ID()); 
                            if(!empty($options['main-portfolio-link'])) $portfolio_link = $options['main-portfolio-link']; 

                            if($back_to_all_override != 'default') $portfolio_link = get_page_link($back_to_all_override); ?>

                            <div id="portfolio-nav">
                                <ul>
                                    <li id="all-items"><a href="<?php echo $portfolio_link; ?>"><i class="icon-salient-back-to-all"></i></a></li>  
                                </ul>
                                <ul class="controls">                                       
                                    <li id="prev-link"><?php next_post_link('%link','<i class="icon-salient-left-arrow-thin"></i>'); ?></li>
                                    <li id="next-link"><?php previous_post_link('%link','<i class="icon-salient-right-arrow-thin"></i>'); ?></li> 
                                </ul>
                            </div>
                     <?php } ?>

                    </div>
                </div> 

            </div><!--/row-->







                    <?php } elseif($post->ID != 0 && $post->post_type == 'post' && is_single() ) { 

                        // also set as an img for social sharing/
                        if($social_img_src != 'none') echo '<img class="hidden-social-img" src="'.$social_img_src.'" alt="'.get_the_title().'" />';

                        ?>

                        <div class="row">
                        <div class="col span_6 section-title blog-title">
                            <h1 class="entry-title"><?php the_title(); ?></h1>

                             <?php if(($post->post_type == 'post' && is_single()) && $fullscreen_header == true) { ?>
                                <div class="author-section">
                                    <span class="meta-author vcard author">  
                                        <?php if (function_exists('get_avatar')) { echo get_avatar( get_the_author_meta('email'), 100 ); }?>
                                    </span> 
                                    <div class="avatar-post-info">
                                        <span class="fn"><?php the_author_posts_link(); ?></span>
                                        <span class="meta-date date updated"><i><?php echo get_the_date(); ?></i></span>
                                     </div>
                                </div>
                            <?php } ?>

                            <?php if($fullscreen_header != true) { ?>

                                <div id="single-below-header">
                                    <span class="meta-author vcard author"><span class="fn"><?php echo __('By', NECTAR_THEME_NAME); ?> <?php the_author_posts_link(); ?></span></span> 
                                    <?php if( !empty($options['blog_social']) && $options['blog_social'] == 1) { ?>
                                        <span class="meta-date date updated"><?php echo get_the_date(); ?></span>
                                    <?php } ?>
                                    <span class="meta-category"><?php the_category(', '); ?></span>
                                    <span class="meta-comment-count"><a href="<?php comments_link(); ?>"><?php comments_number( __('No Comments', NECTAR_THEME_NAME), __('One Comment ', NECTAR_THEME_NAME), __('% Comments', NECTAR_THEME_NAME) ); ?></a></span>

                                </div><!--/single-below-header-->

                                <div id="single-meta" data-sharing="<?php echo ( !empty($options['blog_social']) && $options['blog_social'] == 1 ) ? '1' : '0'; ?>">
                                    <ul>

                                        <?php if( empty($options['blog_social']) || $options['blog_social'] == 0 ) { ?>

                                                <li>
                                                    <?php echo '<span class="n-shortcode">'.nectar_love('return').'</span>'; ?>
                                                </li>
                                                <li>
                                                    <?php echo get_the_date(); ?>
                                                </li>

                                        <?php } ?>

                                    </ul>

                                    <?php if( !empty($options['blog_social']) && $options['blog_social'] == 1 ) { 

                                           echo '<div class="nectar-social">';

                                           echo '<span class="n-shortcode">'.nectar_love('return').'</span>';

                                            //facebook
                                            if(!empty($options['blog-facebook-sharing']) && $options['blog-facebook-sharing'] == 1) { 
                                                echo "<a class='facebook-share nectar-sharing' href='#' title='".__('Share this', NECTAR_THEME_NAME)."'> <i class='icon-facebook'></i> <span class='count'></span></a>";
                                            }
                                            //twitter
                                            if(!empty($options['blog-twitter-sharing']) && $options['blog-twitter-sharing'] == 1) {
                                                echo "<a class='twitter-share nectar-sharing' href='#' title='".__('Tweet this', NECTAR_THEME_NAME)."'> <i class='icon-twitter'></i> <span class='count'></span></a>";
                                            }
                                            //google plus
                                            if(!empty($options['blog-google-plus-sharing']) && $options['blog-google-plus-sharing'] == 1) {
                                                echo "<a class='google-plus-share nectar-sharing-alt' href='#' title='".__('Share this', NECTAR_THEME_NAME)."'> <i class='icon-google-plus'></i> <span class='count'> ".GetGooglePlusShares(get_permalink($post->ID))." </span></a>";
                                            }

                                            //linkedIn
                                            if(!empty($options['blog-linkedin-sharing']) && $options['blog-linkedin-sharing'] == 1) {
                                                echo "<a class='linkedin-share nectar-sharing' href='#' title='".__('Share this', NECTAR_THEME_NAME)."'> <i class='icon-linkedin'></i> <span class='count'> </span></a>";
                                            }
                                            //pinterest
                                            if(!empty($options['blog-pinterest-sharing']) && $options['blog-pinterest-sharing'] == 1) {
                                                echo "<a class='pinterest-share nectar-sharing' href='#' title='".__('Pin this', NECTAR_THEME_NAME)."'> <i class='icon-pinterest'></i> <span class='count'></span></a>";
                                            }

                                          echo '</div>';

                                        }
                                    ?>

                                </div><!--/single-meta-->

                            <?php } //end if theme skin default ?>

                        </div><!--/section-title-->
                    </div><!--/row-->





                    <?php //default 
                    } else { ?>
                     <div class="row">
                        <div class="col span_6">
                            <h1><?php echo $title; ?></h1>
                            <span class="subheader"><?php echo $subtitle; ?></span>
                        </div>

                        <?php // portfolio filters
                            if( $page_template == 'template-portfolio.php' && $display_sortable == '1' && $inline_filters == '0') { ?>
                            <div id="<?php echo $filters_id;?>">
                                    <a href="#" data-sortable-label="<?php echo (!empty($options['portfolio-sortable-text'])) ? $options['portfolio-sortable-text'] :'Sort Portfolio'; ?>" id="sort-portfolio"><span><?php echo (!empty($options['portfolio-sortable-text'])) ? $options['portfolio-sortable-text'] : __('Sort Portfolio',NECTAR_THEME_NAME); ?></span> <i class="icon-angle-down"></i></a> 
                                <ul>
                                   <li><a href="#" data-filter="*"><?php echo __('All', NECTAR_THEME_NAME); ?></a></li>
                                   <?php wp_list_categories(array('title_li' => '', 'taxonomy' => 'project-type', 'show_option_none'   => '', 'walker' => new Walker_Portfolio_Filter())); ?>
                                </ul>
                            </div>
                        <?php } ?>

                      </div>


                <?php } ?>



            </div>


             <?php if(($post->ID != 0 && $post->post_type == 'post' && is_single()) && $fullscreen_header == true) { ?>
                <a href="#" class="section-down-arrow"><i class="icon-salient-down-arrow icon-default-style"> </i></a>
            <?php } ?>


        </div>


       <?php if(!empty($parallax_bg) && $parallax_bg == 'on') { echo '</div>';  } ?>


        <?php } else if( !empty($title)) { ?>

            <div class="row page-header-no-bg" data-alignment="<?php echo (!empty($text_align)) ? $text_align : 'left' ; ?>">
                <div class="container"> 
                    <div class="col span_12 section-title">
                        <h1><?php echo $title; ?><?php if(!empty($subtitle)) echo '<span>' . $subtitle . '</span>'; ?></h1>

                        <?php // portfolio filters
                        if( $page_template == 'template-portfolio.php' && $display_sortable == '1' && $inline_filters == '0') { ?>
                        <div id="<?php echo $filters_id;?>">

                            <a href="#" data-sortable-label="<?php echo (!empty($options['portfolio-sortable-text'])) ? $options['portfolio-sortable-text'] :'Sort Portfolio'; ?>" id="sort-portfolio"><span><?php echo (!empty($options['portfolio-sortable-text'])) ? $options['portfolio-sortable-text'] : __('Sort Portfolio',NECTAR_THEME_NAME); ?></span> <i class="icon-angle-down"></i></a> 

                            <ul>
                               <li><a href="#" data-filter="*"><?php echo __('All', NECTAR_THEME_NAME); ?></a></li>
                               <?php wp_list_categories(array('title_li' => '', 'taxonomy' => 'project-type', 'show_option_none'   => '', 'walker' => new Walker_Portfolio_Filter())); ?>
                            </ul>
                        </div>
                    <?php } ?>

                    </div>
                </div>



            </div>

       <?php }

    }
}


function using_page_header($post_id){

     global $post; 
     global $woocommerce; 

     if($woocommerce && is_shop() || $woocommerce && is_product_category() || $woocommerce && is_product_tag()) {
        $header_title = get_post_meta(woocommerce_get_page_id('shop'), '_nectar_header_title', true);
        $header_bg = get_post_meta(woocommerce_get_page_id('shop'), '_nectar_header_bg', true);
        $header_bg_color = get_post_meta(woocommerce_get_page_id('shop'), '_nectar_header_bg_color', true);
        $disable_effect = get_post_meta(woocommerce_get_page_id('shop'), '_disable_transparent_header', true);
        $force_effect = null;
     } 
     else if(is_home() || is_archive()){
        $header_title = get_post_meta(get_option('page_for_posts'), '_nectar_header_title', true);
        $header_bg = get_post_meta(get_option('page_for_posts'), '_nectar_header_bg', true); 
        $header_bg_color = get_post_meta(get_option('page_for_posts'), '_nectar_header_bg_color', true); 
        $disable_effect = get_post_meta(get_option('page_for_posts'), '_disable_transparent_header', true);
        $force_effect = null;
     }  else {
        $header_title = get_post_meta($post->ID, '_nectar_header_title', true);
        $header_bg = get_post_meta($post->ID, '_nectar_header_bg', true); 
        $header_bg_color = get_post_meta($post->ID, '_nectar_header_bg_color', true); 
        $disable_effect = get_post_meta($post->ID, '_disable_transparent_header', true);
        $force_effect = get_post_meta($post->ID, '_force_transparent_header', true);
     }

    $pattern = get_shortcode_regex();

    $using_applicable_shortcode = 0;

    if ( preg_match_all( '/'. $pattern .'/s', $post->post_content, $matches )  && array_key_exists( 0, $matches ))  {

        if($matches[0][0]){
            if( strpos($matches[0][0],'nectar_slider') !== false && strpos($matches[0][0],'full_width="true"') !== false) {

                if(empty($header_title)) $using_applicable_shortcode = 1;

            } else {
                $using_applicable_shortcode = 0;
            }
        }

    }

    //alternate header style
    global $options;
    if(!empty($options['blog_header_type']) && $options['blog_header_type'] == 'fullscreen' && is_singular('post'))  $using_applicable_shortcode = 1;

    //incase of search / tax / removing effect
    if(is_search() || is_tax() || $disable_effect == 'on') { $using_applicable_shortcode = 0; $header_bg = 0; $header_bg_color = 0; }

    //stop effect from WooCommerce single pages
    global $woocommerce; 
    if($woocommerce && is_product()) { $using_applicable_shortcode = 0; $header_bg = 0; $header_bg_color = 0; }

    //if forcing effect
    if($force_effect == 'on' && (!is_search() && !is_tax()) ) { $using_applicable_shortcode = 1; }

    $the_verdict = (!empty($header_bg_color) || !empty($header_bg) || $using_applicable_shortcode) ? true : false;

    return $the_verdict;

}


function using_nectar_slider(){

    global $post; 
    global $woocommerce;

    if($woocommerce && is_shop() || $woocommerce && is_product_category() || $woocommerce && is_product_tag()) {
        $header_title = get_post_meta(woocommerce_get_page_id('shop'), '_nectar_header_title', true);
        $header_bg = get_post_meta(woocommerce_get_page_id('shop'), '_nectar_header_bg', true);
        $header_bg_color = get_post_meta(woocommerce_get_page_id('shop'), '_nectar_header_bg_color', true);
     } 
     else if(is_home() || is_archive()){
        $header_title = get_post_meta(get_option('page_for_posts'), '_nectar_header_title', true);
        $header_bg = get_post_meta(get_option('page_for_posts'), '_nectar_header_bg', true); 
        $header_bg_color = get_post_meta(get_option('page_for_posts'), '_nectar_header_bg_color', true); 
     }  else {
        $header_title = get_post_meta($post->ID, '_nectar_header_title', true);
        $header_bg = get_post_meta($post->ID, '_nectar_header_bg', true); 
        $header_bg_color = get_post_meta($post->ID, '_nectar_header_bg_color', true); 
     }

    $pattern = get_shortcode_regex();
    $using_fullwidth_slider = 0;

    if ( preg_match_all( '/'. $pattern .'/s', $post->post_content, $matches )  && array_key_exists( 0, $matches ))  {

        if($matches[0][0]){

            if( strpos($matches[0][0],'nectar_slider') !== false && strpos($matches[0][0],'full_width="true"') !== false 
            || strpos($matches[0][0],' type="full_width_content"') !== false && strpos($matches[0][0],'nectar_slider') !== false && strpos($matches[0][0],'[vc_column width="1/1"') !== false ) {

                $using_fullwidth_slider = 1;

            } else {

                $using_fullwidth_slider = 0;

            }
        }

    }

    //incase of search
    if(is_search() || is_tax()) $using_fullwidth_slider = 0;

    //stop effect from WooCommerce single pages
    global $woocommerce; 
    if($woocommerce && is_product()) $using_fullwidth_slider = 0; 

    $the_verdict = (empty($header_title) && empty($header_bg) && empty($header_bg_color) && $using_fullwidth_slider) ? true : false;

    return $the_verdict;
}

在您的站点中,博客 header 和社交图标的 div 容器似乎嵌套在 ID="page-header-bg" 的 div 中,而它应该位于div 和 class "container-wrap"。

看起来这是在您的主题中完成的,所以最好的办法是从 "greyLIME HD Launcher Theme" 复制 header 代码,然后将 LIME 一词替换为 ICE 和相应的社交链接