it-swarm.com.ru

Изображение заголовка по умолчанию не отображается

Уточнение : Мое изображение заголовка по умолчанию не будет Повторно отображать (щелкнув предложенное изображение) после того, как оно было удалено с помощью настройки темы "Скрыть изображение".

  1. Я добавил поддержку тем для Custom Header Image

    // Add Theme Support for Custom Header Image
    add_theme_support( 'custom-header', 
        array(
            'default-image' => get_template_directory_uri() . '/assets/img/hdr_earth.jpg',
            'default-text-color' => '#e2f0d6',
            'header-text' => true,
            'uploads' => true,
            'width' => 1140,
            'height' => 200,
            'wp-head-callback' => 'wpfw_style_header',
        )
    );
    
  2. В настройщике тем изображение (по умолчанию) отображается как:

    • Поле "Текущий заголовок" и
    • В поле "Предлагаемые"
  3. Я удалил текущее изображение заголовка, нажав кнопку "Скрыть изображение".

И это где проблема началась

Когда я пытаюсь повторно добавить изображение по умолчанию , нажимая на "Предлагаемое" (т.е. по умолчанию) изображение ...

  1. Изображение отображается в окне настройщика.
  2. Но изображение не сохранится , поэтому изображение не отображается на веб-странице.

var_dump( get_header_image() ); вернул false, поэтому после прочтения функции в ядре я вижу эту if ( 'remove-header' == $url ) return false;.

Таким образом, var_dump( get_theme_mods() ) действительно показывает 'header_image' => string 'remove-header' (length=13).

???

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

Что мне не хватает?

Весь скрипт (custom-header.php)

    if ( ! function_exists( 'wpfw_custom_header' ) ) {
        function wpfw_custom_header() {
            // Add theme Support for Custom Backgrounds
            add_theme_support( 'custom-background',
                array(
                    'default-color' => '#e2f0d6',
                    'default-image' => get_template_directory_uri() . '/assets/img/bgp-128x180.jpg',
                )
            );

            // Add Theme Support for Custom Header Image
            add_theme_support( 'custom-header', 
                array(
                    'default-image'             => get_template_directory_uri() . '/assets/img/hdr_earth.jpg',
                    'default-text-color'    => '#e2f0d6',
                    'header-text'                   => true,
                    'uploads'                       => true,
                    'width'               => 1140,
                    'height'              => 200,
                    'wp-head-callback'      => 'wpfw_style_header',
                )
            );
        } // end wpfw_custom_header()
    } // end if 

    // Hook into the 'after_setup_theme' action
    add_action( 'after_setup_theme', 'wpfw_custom_header', 11 );

    /**
     * ---------------------------------------------- 
     * Callback function for updating header styles
     * ----------------------------------------------
     */

    if ( ! function_exists( 'wpfw_style_header' ) ) {
        function wpfw_style_header() {
          $text_color = get_header_textcolor();
          ?>  
          <style type="text/css" id="wpfw-custom-header-styles">
              .site-title a.site-title-link {
                color: #<?php echo esc_attr( $text_color ); ?>;
              }

              <?php if ( display_header_text() != true ) : ?>
                  .site-title {
                    display: none;
              } 
              <?php endif; ?> 
          </style>
          <?php 
        } // end wpfw_style_header()
    } // end if...
2
sleeper

Вы должны зарегистрировать заголовки по умолчанию, используя register_defaults_headers - например,.

register_default_headers( array(
    'default-image' => array(
        'url'           => get_stylesheet_directory_uri() . '/assets/img/default-header.jpg',
        'thumbnail_url' => get_stylesheet_directory_uri() . '/assets/img/default-header.jpg',
        'description'   => __( 'Default Header Image', 'textdomain' )
    ),
) );

Смотрите запись кодекса для получения дополнительной информации о функции - https://codex.wordpress.org/Function_Reference/register_default_headers .

Кодекс не ясен, но эта функция фактически необходима для правильной работы custom_headers.

1
Mark

Попробуйте это там, где вам нужно получить URL-адрес изображения заголовка, и вы установили значение по умолчанию:

    $url = has_header_image() ? get_header_image() : get_theme_support( 'custom-header', 'default-image' );
0
dewd

Чтобы быть честным, у меня есть рабочий заголовок изображения в моем настройщике, используя следующий код:

Functions.php

/* custom header image */
$headerimage = array(
    'default-image' => '%s/images/image1.jpg',
    'width' => 1920,
    'height' => 1080,
    'flex-height' => false,
    'flex-width' => true,
    'uploads' => true,
    'random-default' => false,
    'header-text' => true,
    'default-text-color' => '',
    'wp-head-callback' => '',
    'admin-head-callback' => '',
    'admin-preview-callback' => '',
);
add_theme_support('custom-header', $headerimage);

Ничего в customizer.php

Где я называю изображение заголовка:

<header class="site-header">
    <div class="row header-home no-gutters" <?php echo 'style="background-image:url(' . get_header_image() . ');' . 'background-repeat: no-repeat;
     background-position: center; background-size: cover;min-height:100vh">'; ?>
    </div>
</header>

Зарегистрировать изображения по умолчанию (очевидно, это необходимо ТАКЖЕ functions.php)

register_default_headers( array(
    'headerimage' => array(
        'url'           => '%s/images/image1.jpg',
        'thumbnail_url' => '%s/images/image1.jpg',
        'description'   => __( 'headerimage', 'DesignitMultistore' )
        ),
    ) );
0
CompactCode

Для людей, которые все еще имеют проблемы, вам нужен полный код:

в вашем functions.php:

register_default_headers( array(
    'default-image' => array(
        'url'           => get_template_directory_uri() . '/img/header.jpg',
        'thumbnail_url' => get_template_directory_uri() . '/img/header.jpg',
        'description'   => __( 'Default Header Image', 'textdomain' )
    ),
) );

function yourtheme_custom_header_setup() {
    $args = array(
        'default-image'      => get_template_directory_uri() . '/img/header.jpg',
        'default-text-color' => '000',
        'width'              => 1200,
        'height'             => 720,
        'flex-width'         => true,
        'flex-height'        => true,
    );
    add_theme_support( 'custom-header', $args );
}
add_action( 'after_setup_theme', 'yourtheme_custom_header_setup' );

В вашем файле шаблона (возможно header.php):

echo(has_header_image() ? get_header_image() : get_theme_support( 'custom-header', 'default-image' ));
0
Eric van Eldik