it-swarm.com.ru

Изменение авторских прав в теме ребенка PHP

Ниже приведен файл, откуда берется информация.

Я попытался добавить папку/inc в дочернюю тему и добавить template-tags.php с измененным, но это не оказывает никакого влияния.

/wp-content/themes/hestia/inc/template-tags.php

Это оригинальный код здесь ...

function hesta_bottom_footer_content( $is_callback = false ) {
    if ( ! $is_callback ) {
    ?>
        <div class="hestia-bottom-footer-content">
        <?php
    }
    $hestia_general_credits     = get_theme_mod(
        'hestia_general_credits',
        sprintf(
            /* translators: %1$s is Theme Name, %2$s is WordPress */
            esc_html__( '%1$s | Powered by %2$s', 'hestia' ),
            sprintf(
                /* translators: %s is Theme name */
                '<a href="https://themeisle.com/themes/hestia/" target="_blank"         rel="nofollow">%s</a>',
                esc_html__( 'Hestia', 'hestia' )
            ),
            /* translators: %s is WordPress */
            sprintf(
                '<a href="%1$s" rel="nofollow">%2$s</a>',
                esc_url( __( 'http://wordpress.org', 'hestia' ) ),
                esc_html__( 'WordPress', 'hestia' )
            )
        )
    );
    $hestia_copyright_alignment = get_theme_mod( 'hestia_copyright_alignment',    'right' );
    $menu_class                 = 'pull-left';
    $copyright_class            = 'pull-right';
    switch ( $hestia_copyright_alignment ) {
        case 'left':
            $menu_class      = 'pull-right';
            $copyright_class = 'pull-left';
            break;
        case 'center':
            $menu_class      = 'hestia-center';
            $copyright_class = 'hestia-center';
    }
    wp_nav_menu(
        array(
            'theme_location' => 'footer',
            'depth'          => 1,
            'container'      => 'ul',
            'menu_class'     => 'footer-menu ' . esc_attr( $menu_class ),
        )
    );
        ?>
    <?php if ( ! empty( $hestia_general_credits ) || is_customize_preview() ) :    ?>
        <div class="copyright <?php echo esc_attr( $copyright_class ); ?>">
            <?php echo wp_kses_post( $hestia_general_credits ); ?>
        </div>
    <?php endif; ?>
    <?php
    if ( ! $is_callback ) {
    ?>
        </div>
        <?php
    }
   }

И это тот же код с изменениями, которые я хочу внести, и это часть, "разработанная"

function hesta_bottom_footer_content( $is_callback = false ) {
    if ( ! $is_callback ) {
    ?>
        <div class="hestia-bottom-footer-content">
        <?php
    }
    $hestia_general_credits     = get_theme_mod(
        'hestia_general_credits',
        sprintf(
            /* translators: %1$s is Theme Name, %2$s is WordPress */
            esc_html__( 'Designed by HCL Design' ),
            sprintf(
                /* translators: %s is Theme name */
                '<a href="https://themeisle.com/themes/hestia/" target="_blank" rel="nofollow">%s</a>',
                esc_html__( 'Hestia', 'hestia' )
            ),
            /* translators: %s is WordPress */
            sprintf(
                '<a href="%1$s" rel="nofollow">%2$s</a>',
                esc_url( __( 'http://wordpress.org', 'hestia' ) ),
                esc_html__( 'WordPress', 'hestia' )
            )
        )
    );
    $hestia_copyright_alignment = get_theme_mod( 'hestia_copyright_alignment', 'right' );
    $menu_class                 = 'pull-left';
    $copyright_class            = 'pull-right';
    switch ( $hestia_copyright_alignment ) {
        case 'left':
            $menu_class      = 'pull-right';
            $copyright_class = 'pull-left';
            break;
        case 'center':
            $menu_class      = 'hestia-center';
            $copyright_class = 'hestia-center';
    }
    wp_nav_menu(
        array(
            'theme_location' => 'footer',
            'depth'          => 1,
            'container'      => 'ul',
            'menu_class'     => 'footer-menu ' . esc_attr( $menu_class ),
        )
    );
        ?>
    <?php if ( ! empty( $hestia_general_credits ) || is_customize_preview() ) : ?>
        <div class="copyright <?php echo esc_attr( $copyright_class ); ?>">
            <?php echo wp_kses_post( $hestia_general_credits ); ?>
        </div>
    <?php endif; ?>
    <?php
    if ( ! $is_callback ) {
    ?>
        </div>
        <?php
    }
}

Так есть ли возможность внести это изменение, добавив какую-то функцию в functions.php или любой другой файл? Подойдет любое решение, которое позволяет мне вносить эти изменения, а не изменять их каждый раз при обновлении темы.

В footer.php есть только

<?php do_action( 'hestia_do_footer' ); ?>

именно это привело меня к поиску источника этой do_action.

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

1
Harvey

Вам нужно изменить 2 функции, а не только одну в вашем functions.php:

/**
 * Function to display footer content.
 *
 * @since 1.1.24
 * @access public
 */
//ADDED CHILD TO THE END OF THE NAME
function hestia_the_footer_content_child() {
    /**
     * Array holding all registered footer widgets areas
     */
    $hestia_footer_widgets_ids = array( 'footer-one-widgets', 'footer-two-widgets', 'footer-three-widgets' );
    $hestia_footer_class = 'col-md-4';
    $footer_has_widgets = false;
    $hestia_nr_footer_widgets = get_theme_mod( 'hestia_nr_footer_widgets','3' );

    /**
     *  Enabling alternative footer style
     */
    $footer_style = '';
    $footer_style = get_theme_mod( 'hestia_alternative_footer_style', 0 );
    if ( isset( $footer_style ) && $footer_style == 0 ) {
        $footer_style = 'footer-black';
    } else {
        $footer_style = '';
    }

    /**
     *  Get the widgets areas ids and class corresponding to the number selected by the user
     */
    if ( ! empty( $hestia_nr_footer_widgets ) ) {
        $hestia_footer_widgets_ids = array_slice( $hestia_footer_widgets_ids, 0, $hestia_nr_footer_widgets );
        switch ( $hestia_nr_footer_widgets ) {
            case 1:
                $hestia_footer_class = 'col-md-12';
                break;
            case 2:
                $hestia_footer_class = 'col-md-6';
                break;
            case 3:
                $hestia_footer_class = 'col-md-4';
                break;
            case 4:
                $hestia_footer_class = 'col-md-3';
                break;
        }
    }
    /**
     * Check if the selected footer widgets areas are not empty
     */
    if ( ! empty( $hestia_footer_widgets_ids ) ) {
        foreach ( $hestia_footer_widgets_ids as $hestia_footer_widget_item ) {
            $footer_has_widgets = is_active_sidebar( $hestia_footer_widget_item );
            if ( $footer_has_widgets ) {
                break;
            }
        }
    }

    hestia_before_footer_trigger();
    ?>
    <footer class="footer <?php echo esc_attr( $footer_style ); ?> footer-big">
        <?php hestia_before_footer_content_trigger(); ?>
        <div class="container">
            <?php
            if ( $footer_has_widgets ) {
            ?>
                <div class="content">
                    <div class="row">
                        <?php
                        if ( ! empty( $hestia_footer_widgets_ids ) ) {
                            foreach ( $hestia_footer_widgets_ids as $hestia_footer_widget_item ) {
                                if ( is_active_sidebar( $hestia_footer_widget_item ) ) {
                                    echo '<div class="' . $hestia_footer_class . '">';
                                        dynamic_sidebar( $hestia_footer_widget_item );
                                    echo '</div>';
                                }
                            }
                        }
                        ?>
                    </div>
                </div>
                <hr/>
                <?php
            }
            ?>
            <?php hestia_before_footer_widgets_trigger(); ?>
            <div class="hestia-bottom-footer-content">
                <?php
//ADDED CHILD THIS IS THE CALL TO THE COPYRIGHT
                hesta_bottom_footer_content_child();
                ?>
            </div>
            <?php hestia_after_footer_widgets_trigger(); ?>
        </div>
        <?php hestia_after_footer_content_trigger(); ?>
    </footer>
    <?php
    hestia_after_footer_trigger();
}
//WE CHANGE THE ACTION NAME AND THE CALL IS TO OUR FUNCTION NOW
add_action( 'hestia_do_footer_child', 'hestia_the_footer_content_child' );

    //THIS IS YOUR MODIFIED FUNCTION
    function hesta_bottom_footer_content_child( $is_callback = false ) {
    if ( ! $is_callback ) {
    ?>
        <div class="hestia-bottom-footer-content">
        <?php
    }
    $hestia_general_credits     = get_theme_mod(
        'hestia_general_credits',
        sprintf(
            /* translators: %1$s is Theme Name, %2$s is WordPress */
            esc_html__( 'Designed by HCL Design' ),
            sprintf(
                /* translators: %s is Theme name */
                '<a href="https://themeisle.com/themes/hestia/" target="_blank" rel="nofollow">%s</a>',
                esc_html__( 'Hestia', 'hestia' )
            ),
            /* translators: %s is WordPress */
            sprintf(
                '<a href="%1$s" rel="nofollow">%2$s</a>',
                esc_url( __( 'http://wordpress.org', 'hestia' ) ),
                esc_html__( 'WordPress', 'hestia' )
            )
        )
    );
    $hestia_copyright_alignment = get_theme_mod( 'hestia_copyright_alignment', 'right' );
    $menu_class                 = 'pull-left';
    $copyright_class            = 'pull-right';
    switch ( $hestia_copyright_alignment ) {
        case 'left':
            $menu_class      = 'pull-right';
            $copyright_class = 'pull-left';
            break;
        case 'center':
            $menu_class      = 'hestia-center';
            $copyright_class = 'hestia-center';
    }
    wp_nav_menu(
        array(
            'theme_location' => 'footer',
            'depth'          => 1,
            'container'      => 'ul',
            'menu_class'     => 'footer-menu ' . esc_attr( $menu_class ),
        )
    );
        ?>
    <?php if ( ! empty( $hestia_general_credits ) || is_customize_preview() ) : ?>
        <div class="copyright <?php echo esc_attr( $copyright_class ); ?>">
            <?php echo wp_kses_post( $hestia_general_credits ); ?>
        </div>
    <?php endif; ?>
    <?php
    if ( ! $is_callback ) {
    ?>
        </div>
        <?php
    }
}

Теперь в footer.php мы называем наше действие:

<?php do_action( 'hestia_do_footer_child' ); ?>

Даже если вы изменили функцию, фактическая функция авторского права была вызвана другой функцией, поэтому вам нужно также создать свою собственную версию, чтобы она вызывала вашу измененную функцию.

1
David Lee