Отдельная страница характеристик в Wordpress

На сайте есть описание товара например с таким адресом site/product/product-name Как бы сделать так чтоб для каждого товара генерировалась отдельная запись с характеристиками товара с адресом site/product/product-name/specs? Я так понимаю надо делать например поля в товаре с характеристиками и на что то вешать wp_insert_post(). Не очень понимаю с чего начать решать эту задачу, буду благодарен за подсказки.


Ответы (1 шт):

Автор решения: KAGG Design

Надо сделать вывод своей страницы в том случае, если url имеет вид /product/product-name/specs. Добавьте следующий код в functions.php вашей темы.

/**
 * Check if it is a specification page.
 *
 * @return int|false
 */
function is_specification_page() {
    if ( ! isset( $_SERVER['REQUEST_URI'] ) ) {
        return false;
    }

    $uri  = filter_var( wp_unslash( $_SERVER['REQUEST_URI'] ), FILTER_SANITIZE_STRING );
    $path = wp_parse_url( $uri, PHP_URL_PATH );


    if ( preg_match( '#/product/(.+)/specs/?$#i', $path, $matches ) ) {
        return url_to_postid( '/product/' . $matches[1] );
    }

    return false;
}

/**
 * Template for the specification frontend page.
 */
function specifications_page() {
    $product_id = is_specification_page();
    if ( ! $product_id ) {
        return;
    }

    get_header();
    echo 'Here I output my specs for product_id=' . $product_id;
    get_footer();
    exit;
}

add_action( 'init', 'specifications_page', PHP_INT_MAX );

Это работающий пример. Вместо echo вставьте вывод всего, что вам нужно. id товара у вас в переменной $product_id.

→ Ссылка