Связать основной логотип с пользовательскими URL-адресами вместо домашней страницы с дочерней темой WordPress Avada? - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь настроить Avada для связи основного логотипа сайта с пользовательским URL, когда вы находитесь на определенных страницах.Я скопировал logo.php в дочернюю тему и добавил:

        <?php $standard_logo = Avada()->images->get_logo_image_srcset( 'logo', 'logo_retina' ); ?>
        <!-- custom standard logos -->
        <?php
        //Binghamton
        if (is_page( array (194, 376, 534, 329, 499, 489, 479, 476, 467)))
        {
          $standard_logo['srcset'] = '/wp-content/uploads/2018/06/broadway-binghamton-logo.png';
          $standard_logo['url'] = $standard_logo['srcset'];
          $retina_logo['srcset'] = '/wp-content/uploads/2018/06/broadway-binghamton-logo-retina.png';
          $retina_logo['url'] = $standard_logo['srcset'];
        }

        //Erie
        if (is_page( array (248, 382, 589, 926, 1542, 1537, 1514)))
        {
          $standard_logo['srcset'] = '/wp-content/uploads/2018/06/broadway-erie-logo.png';
          $standard_logo['url'] = $standard_logo['srcset'];
          $retina_logo['srcset'] = '/wp-content/uploads/2018/06/broadway-erie-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" />

        <?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' );
        ?>
            <!-- custom mobile logos -->
            <?php
            //Binghamton
            if (is_page( array (194, 376, 534, 329, 499, 489, 479, 476, 467)))
            {
              $mobile_logo['srcset'] = '/wp-content/uploads/2018/06/broadway-binghamton-logo.png';
              $mobile_logo['url'] = $mobile_logo['srcset'];
            }

            //Erie
            if (is_page( array (248, 382, 589, 926, 1542, 1537, 1514)))
            {
              $mobile_logo['srcset'] = '/wp-content/uploads/2018/06/broadway-erie-logo.png';
              $mobile_logo['url'] = $mobile_logo['srcset'];
            }
            ?>
            <!-- 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 } ?>

, который изменяет логотипы в соответствии с правильными городами, но Мне нужны логотипы городов для ссылкина страницы города вместо домашней страницы.

http://nac.flywheelsites.com/broadway-in-binghamton/ отображает логотип Binghamton, но в настоящее время ссылается на http://nac.flywheelsites.com/.

Я пытался:

$standard_logo['/broadway-in-binghamton/'] = $standard_logo['srcset'];

но я не думаю, что это правильно.Подобные вопросы говорят о том, чтобы перейти в файл header.php и найти свой класс логотипа, но эта тема не сохраняет его там.Есть ли способ вставить пользовательские URL прямо в файл logo.php ?

1 Ответ

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

Код, который вы указали, относится только к <img>.Когда я проверяю ваш сайт, я вижу, что оба логотипа (обычный и сетчатка) обернуты в ссылку: <a class="fusion-logo-link" href="http://nac.flywheelsites.com/">.Вам нужно найти источник этой ссылки (вероятно header.php).

ИЛИ

Avada - это массивная тема, вероятно, есть фильтр для ссылки логотипа, которую вы можете использовать для ее изменения.Я не очень часто использую Avada, я предлагаю вам спросить их.


ОБНОВЛЕНИЕ, после нахождения правильного фильтра ссылок логотипа Avada avada_logo_anchor_tag_attributes

add_filter('avada_logo_anchor_tag_attributes', 'broadway_logo_link_modify');
function broadway_logo_link_modify() {

  $link = esc_url( home_url( '/' ) );

  if (is_page( array (248, 382, 589, 926, 1542, 1537, 1514))) {
    $link = 'http://nac.flywheelsites.com/broadway-in-binghamton/';
  }

  // another option with which you don't have to add every page id
  $current_url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
  if (strpos($current_url, 'http://nac.flywheelsites.com/broadway-in-binghamton/') !== false) {
    $link = 'http://nac.flywheelsites.com/broadway-in-binghamton/';
  }

  $link_arr = array(
    'class' => 'fusion-logo-link',
    'href' => $link,
  );

  return $link_arr;

}

Конечно, вы должнырасширить фрагмент, чтобы соответствовать вашим потребностям, но вы поймете, идея.Поместите его в файл functions.php (не logo.php).

...