Плоский для Woocommerce: аннулировать файл в папке IN C - PullRequest
2 голосов
/ 24 января 2020

Я пытаюсь изменить часть кода внутри: themes / flatsome / in c / shortcodes / ux_products. php

Я хочу изменить это:

<a href="<?php echo get_the_permalink(); ?>">

Для этого

<a href="<?php echo get_the_permalink(); ?>" aria-label="<?php echo get_the_title(); ?>">

У меня есть тот же путь и файл в папке моей дочерней темы, но я не могу отменить основной файл темы.

Я понял, что есть другой файл это относится к файлу, который я хочу отменить: themes / flatsome / in c / init. php:

if (is_woocommerce_activated()) {
  require get_template_directory() . '/inc/shortcodes/ux_products.php'; //File to annul
  require get_template_directory() . '/inc/shortcodes/ux_products_list.php';
  require get_template_directory() . '/inc/shortcodes/product_flip.php';
  require get_template_directory() . '/inc/shortcodes/product_categories.php';
  if(get_theme_mod('product_layout') == 'custom') {
    require get_template_directory() . '/inc/shortcodes/custom-product.php';
  }
}

Как это сделать без изменения основной темы (это работает, но это не правильно).

Ответы [ 2 ]

0 голосов
/ 18 марта 2020

Сначала вам нужно скопировать шорткод, который вы хотите изменить, в свою дочернюю тему.

'your_child_theme/inc/shortcodes/ux_products.php'

Затем вам нужно изменить дочерний шорткод, имя функции:

function ux_products($atts, $content = null, $tag)

на

function child_ux_products($atts, $content = null, $tag)

Измените то, что вам нужно:

<a href="<?php echo get_the_permalink(); ?>">

на

<a href="<?php echo get_the_permalink(); ?>" aria-label="<?php echo get_the_title(); ?>">

И в конце вашего дочернего файла шорткода переопределите все (или только необходимые) объявленные шорткоды , с вашей собственной функцией:

add_shortcode("ux_products", "ux_products");

до

add_shortcode("ux_products", "child_ux_products");

Чтобы переопределить все шорткоды:

add_shortcode("ux_bestseller_products", "child_ux_products");
add_shortcode("ux_featured_products", "child_ux_products");
add_shortcode("ux_sale_products", "child_ux_products");
add_shortcode("ux_latest_products", "child_ux_products");
add_shortcode("ux_custom_products", "child_ux_products");
add_shortcode("product_lookbook", "child_ux_products");
add_shortcode("products_pinterest_style", "child_ux_products");
add_shortcode("ux_products", "child_ux_products");

Наконец, в вашей функции. php или '/ inc / init. php ', вам нужно использовать переопределенные шорткоды, когда wp_loaded:

function override_shortcodes(){
  if(is_woocommerce_activated()){
    require get_stylesheet_directory() . '/inc/shortcodes/ux_products.php';
  }
}
add_action('wp_loaded', 'override_shortcodes', 10);
0 голосов
/ 24 января 2020

Можете ли вы попробовать добавить это к функциям вашей дочерней темы. php:

add_filter( 'template_directory', 'search_child_template_directory' );
function search_child_template_directory( $template_dir ) {
    if (is_woocommerce_activated()) {
        return get_theme_file_path();
    }
    return $template_dir;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...