Переключение логотипа для определенных страниц на сайте WordPress путем редактирования дочерней темы Avada logo.php - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь сделать так, чтобы на определенных страницах использовался другой логотип в шапке.Я скопировал файл logo.php из темы Avada в папку моей дочерней темы (Avada-Child-Theme / templates / logo.php).

Я добавил:

    if (is_page(array (194, 248)))
{
  $standard_logo = 'http://nac.flywheelsites.com/wp-content/uploads/2018/05/broadway-binghamton-logo.png';
}

        if (is_page(array (194, 248)))
{
  $retina_logo = 'http://nac.flywheelsites.com/wp-content/uploads/2018/05/broadway-binghamton-logo.png';
}

Так вотЭто новый файл logo.php в полном объеме:

<?php
/**
 * Logo template.
 *
 * @author     ThemeFusion
 * @copyright  (c) Copyright by ThemeFusion
 * @link       http://theme-fusion.com
 * @package    Avada
 * @subpackage Core
 */

// Do not allow directly accessing this file.
if ( ! defined( 'ABSPATH' ) ) {
    exit( 'Direct script access denied.' );
}
$logo_opening_markup = '<div class="';
$logo_closing_markup = '</div>';
if ( 'v7' === Avada()->settings->get( 'header_layout' ) && ! Avada()->settings->get( 'logo_background' ) ) {
    $logo_opening_markup = '<li class="fusion-middle-logo-menu-logo ';
    $logo_closing_markup = '</li>';
} elseif ( 'v7' === Avada()->settings->get( 'header_layout' ) && Avada()->settings->get( 'logo_background' ) && 'Top' === Avada()->settings->get( 'header_position' ) ) {
    $logo_opening_markup = '<li class="fusion-logo-background fusion-middle-logo-menu-logo"><div class="';
    $logo_closing_markup = '</div></li>';
} elseif ( Avada()->settings->get( 'logo_background' ) && 'v4' !== Avada()->settings->get( 'header_layout' ) && 'v5' !== Avada()->settings->get( 'header_layout' ) && 'Top' === Avada()->settings->get( 'header_position' ) ) {
    $logo_opening_markup = '<div class="fusion-logo-background"><div class="';
    $logo_closing_markup = '</div></div>';
}
?>
<?php if ( '' !== Avada()->settings->get( 'logo', 'url' ) || '' !== Avada()->settings->get( 'logo_retina', 'url' ) ) : ?>
    <?php echo $logo_opening_markup; // WPCS: XSS ok. ?>fusion-logo" data-margin-top="<?php echo esc_attr( Avada()->settings->get( 'logo_margin', 'top' ) ); ?>" data-margin-bottom="<?php echo esc_attr( Avada()->settings->get( 'logo_margin', 'bottom' ) ); ?>" data-margin-left="<?php echo esc_attr( Avada()->settings->get( 'logo_margin', 'left' ) ); ?>" data-margin-right="<?php echo esc_attr( Avada()->settings->get( 'logo_margin', 'right' ) ); ?>">
<?php else : ?>
    <?php echo $logo_opening_markup; // WPCS: XSS ok. ?>fusion-logo" data-margin-top="0px" data-margin-bottom="0px" data-margin-left="0px" data-margin-right="0px">
<?php endif; ?>
<?php
    /**
     * The avada_logo_prepend hook.
     */
    do_action( 'avada_logo_prepend' );

    $logo_anchor_tag_attributes = '';
    $logo_anchor_tag_attributes_array = apply_filters( 'avada_logo_anchor_tag_attributes',
        array(
            'class' => 'fusion-logo-link',
            'href'  => ( $custom_link = Avada()->settings->get( 'logo_custom_link' ) ) ? esc_url( $custom_link ) : esc_url( home_url( '/' ) ),
        )
    );

    foreach ( $logo_anchor_tag_attributes_array as $attribute => $value ) {
        if ( 'href' === $attribute ) {
            $value = esc_url( $value );
        } else {
            $value = esc_attr( $value );
        }

        $logo_anchor_tag_attributes .= ' ' . $attribute . '="' . $value . '" ';
    }

        if (is_page(array (194, 248)))
    {
      $standard_logo = 'http://nac.flywheelsites.com/wp-content/uploads/2018/05/broadway-binghamton-logo.png';
    }

            if (is_page(array (194, 248)))
    {
      $retina_logo = 'http://nac.flywheelsites.com/wp-content/uploads/2018/05/broadway-binghamton-logo.png';
    }

    $logo_alt_attribute = apply_filters( 'avada_logo_alt_tag', get_bloginfo( 'name', 'display' ) . ' ' . __( 'Logo', 'Avada' ) );
    ?>
    <?php if ( ( Avada()->settings->get( 'logo', 'url' ) && '' !== Avada()->settings->get( 'logo', 'url' ) ) || ( Avada()->settings->get( 'logo_retina', 'url' ) && '' !== Avada()->settings->get( 'logo_retina', 'url' ) ) ) : ?>
        <a<?php echo $logo_anchor_tag_attributes; // WPCS: XSS ok. ?>>

            <?php $standard_logo = Avada()->images->get_logo_image_srcset( 'logo', 'logo_retina' ); ?>
            <!-- standard logo -->
            <img src="<?php echo esc_url_raw( $standard_logo['url'] ); ?>" srcset="<?php echo esc_attr( $standard_logo['srcset'] ); ?>" width="<?php echo esc_attr( $standard_logo['width'] ); ?>" height="<?php echo esc_attr( $standard_logo['height'] ); ?>"<?php echo $standard_logo['style']; // WPCS: XSS ok. ?> alt="<?php echo esc_attr( $logo_alt_attribute ); ?>" retina_logo_url="<?php echo esc_url_raw( $standard_logo['is_retina'] ); ?>" class="fusion-standard-logo" />

            <?php
            if ( Avada()->settings->get( 'mobile_logo', 'url' ) && '' !== Avada()->settings->get( 'mobile_logo', 'url' ) ) {
                $mobile_logo = Avada()->images->get_logo_image_srcset( 'mobile_logo', 'mobile_logo_retina' );
            ?>
                <!-- mobile logo -->
                <img src="<?php echo esc_url_raw( $mobile_logo['url'] ); ?>" srcset="<?php echo esc_attr( $mobile_logo['srcset'] ); ?>" width="<?php echo esc_attr( $mobile_logo['width'] ); ?>" height="<?php echo esc_attr( $mobile_logo['height'] ); ?>"<?php echo $mobile_logo['style']; // WPCS: XSS ok. ?> alt="<?php echo esc_attr( $logo_alt_attribute ); ?>" retina_logo_url="<?php echo esc_url_raw( $mobile_logo['is_retina'] ); ?>" class="fusion-mobile-logo" />
            <?php } ?>

            <?php
            if ( Avada()->settings->get( 'sticky_header_logo', 'url' ) && '' !== Avada()->settings->get( 'sticky_header_logo', 'url' ) && ( in_array( Avada()->settings->get( 'header_layout' ), array( 'v1', 'v2', 'v3', 'v6', 'v7' ) ) || ( ( in_array( Avada()->settings->get( 'header_layout' ), array( 'v4', 'v5' ) ) && 'menu_and_logo' === Avada()->settings->get( 'header_sticky_type2_layout' ) ) ) ) ) {
                $sticky_logo = Avada()->images->get_logo_image_srcset( 'sticky_header_logo', 'sticky_header_logo_retina' );
            ?>
                <!-- sticky header logo -->
                <img src="<?php echo esc_url_raw( $sticky_logo['url'] ); ?>" srcset="<?php echo esc_attr( $sticky_logo['srcset'] ); ?>" width="<?php echo esc_attr( $sticky_logo['width'] ); ?>" height="<?php echo esc_attr( $sticky_logo['height'] ); ?>"<?php echo $sticky_logo['style']; // WPCS: XSS ok. ?> alt="<?php echo esc_attr( $logo_alt_attribute ); ?>" retina_logo_url="<?php echo esc_url_raw( $sticky_logo['is_retina'] ); ?>" class="fusion-sticky-logo" />
            <?php } ?>
        </a>
    <?php endif; ?>
    <?php
    /**
     * The avada_logo_append hook.
     *
     * @hooked avada_header_content_3 - 10.
     */
    do_action( 'avada_logo_append' );

    ?>
<?php
echo $logo_closing_markup; // WPCS: XSS ok.

/* Omit closing PHP tag to avoid "Headers already sent" issues. */

Я также пробовал:

$standard_logo[‘url’] = ‘/wp-content/uploads/2018/05/broadway-binghamton-logo.png’;

.Текущий файл применяется только к указанным страницам, но я вижу эту ошибку в верхней части этих страниц:

Предупреждение: недопустимое смещение строки 'url' в / www / wp-content / themes /Avada-Child-Theme / templates / logo.php в строке 73

Я не могу понять, как заставить его работать.Сайт http://nac.flywheelsites.com/ и для просмотра, ООН: маховик PW: ideakraft

В разделе "Города" в главной навигации я пытаюсь изменить логотип для Бингемтона.

URL-адрес изображения правильный.

Я помещаю это в неправильное место в файле PHP?Я пробовал несколько разных мест.Пожалуйста, порекомендуйте.Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Ответ заключался в размещении пользовательских логотипов над функцией источника изображения esc_url_raw () для каждого типа логотипа (стандартного, мобильного и т. Д.)

<?php $standard_logo = Avada()->images->get_logo_image_srcset( 'logo', 'logo_retina' ); ?>
        <!-- custom standard logos -->
        <?php
        //Binghamton
        if (is_page( 194 ))
        {
          $standard_logo['srcset'] = 'http://nac.flywheelsites.com/wp-content/uploads/2018/05/broadway-binghamton-logo.png';
          $standard_logo['url'] = $standard_logo['srcset'];
          $retina_logo['srcset'] = 'http://nac.flywheelsites.com/wp-content/uploads/2018/05/broadway-binghamton-logo-retina.png';
          $retina_logo['url'] = $standard_logo['srcset']; 
        } 
        //Erie
        if (is_page( 248 ))
        {
          $standard_logo['srcset'] = 'http://nac.flywheelsites.com/wp-content/uploads/2018/05/broadway-erie-logo.png';
          $standard_logo['url'] = $standard_logo['srcset'];
          $retina_logo['srcset'] = 'http://nac.flywheelsites.com/wp-content/uploads/2018/05/broadway-erie-logo.png';
          $retina_logo['url'] = $standard_logo['srcset']; 
        } 
        //Scranton
        if (is_page( 250 ))
        {
          $standard_logo['srcset'] = 'http://nac.flywheelsites.com/wp-content/uploads/2018/05/broadway-scranton-logo.png';
          $standard_logo['url'] = $standard_logo['srcset'];
          $retina_logo['srcset'] = 'http://nac.flywheelsites.com/wp-content/uploads/2018/05/broadway-scranton-logo.png';
          $retina_logo['url'] = $standard_logo['srcset']; 
        } 
        ?>
        <!-- standard logo -->
        <img src="<?php echo esc_url_raw( $standard_logo['url'] ); ?>" srcset="<?php echo esc_attr( $standard_logo['srcset'] ); ?>" width="<?php echo esc_attr( $standard_logo['width'] ); ?>" height="<?php echo esc_attr( $standard_logo['height'] ); ?>"<?php echo $standard_logo['style']; // WPCS: XSS ok. ?> alt="<?php echo esc_attr( $logo_alt_attribute ); ?>" retina_logo_url="<?php echo esc_url_raw( $standard_logo['is_retina'] ); ?>" class="fusion-standard-logo" />

Условия страницы работали нормально, проверено эхом.Просто необходимо выполнить пользовательский код перед печатью логотипа.

0 голосов
/ 24 мая 2018

Не устанавливайте это как строку - вы были на правильном пути с массивом.

Я думаю, вам придется установить и "url", и "srcset":

<code>// fetch logo normally
$standard_logo = Avada()->images->get_logo_image_srcset( 'logo', 'logo_retina' ); 

// see what that logo structure is like so you know what to override
// echo "<pre>"; print_r($standard_logo); echo "
"; // if на этих страницах, переопределить srcset и url if (is_page (array (194, 248))) {$ standard_logo ['srcset'] = 'http://nac.flywheelsites.com/wp-content/uploads/2018/05/broadway-binghamton-logo.png'; $ standard_logo [' url '] =$ standard_logo ['srcset']; $ retina_logo ['srcset'] = 'http://nac.flywheelsites.com/wp-content/uploads/2018/05/broadway-binghamton-logo.png'; $ retina_logo [' url '] = $ retinal_logo [' srcset '];}

В противном случае я не надену'не вижу никаких проблем сразу ... Убедитесь, что идентификаторы в вашем массиве верны. И убедитесь, что вы поставили условие IF после , чтобы логотип получался нормально с функциями Avada, иначе функция Avada переопределит вашновые переменные.

...