Переопределение родительской функции WordPress, которая не привязана ни к каким действиям

#php #wordpress #wordpress-theming #customization

#php #wordpress #wordpress-тематизация #настройка

Вопрос:

У меня есть родительская функция темы следующим образом:

 /*-----------------------------------------------------------------------------------*/
/* Display first image linked portfolio */
/*-----------------------------------------------------------------------------------*/

function ct_first_image_linked_portfolio() {
    $photo = ct_get_post_image();
    global $ct_options;
    global $post; ?>
    <figure>
        <div><?php the_post_thumbnail('large'); ?></div>
        <figcaption>
            <h3 class="marB0"><?php the_title(); ?></h3>
            <span><?php the_author(); ?></span>
            <a href="<?php the_permalink() ?>">View</a>
        </figcaption>
    </figure>
<?php }
  

Я хочу отредактировать разметку, которую выводит эта функция. Сначала я подумал, что мне нужно будет использовать некоторые действия / фильтры, чтобы как-то фильтровать вывод. При ближайшем рассмотрении функция, похоже, не привязана ни к каким действиям и просто вызывается непосредственно из файла шаблона loop-portfolio.php :

 while ( $query->have_posts() ) : $query->the_post(); ?>

    <li class="<?php ct_first_term(); ?> item col span_4">
        <?php ct_first_image_linked_portfolio(); ?>
    </li>   

<?php endwhile; ?>
  

Итак, мой вопрос: я просто дублирую loop-portfolio.php в мою дочернюю тему, а затем изменить вызов функции на другую функцию? Кажется, что это сработает, но я проверяю, что нет лучшего способа сделать это. Спасибо.

Ответ №1:

Если родительская функция не предлагает никакого фильтра для изменения разметки и не инкапсулирована внутри if(!function_exists(FUNC)) {} (известной как подключаемая функция), тогда да, дочерняя тема новая функция — это правильный путь.