#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)) {}
(известной как подключаемая функция), тогда да, дочерняя тема новая функция — это правильный путь.