Отдельная страница характеристик в Wordpress
На сайте есть описание товара например с таким адресом site/product/product-name Как бы сделать так чтоб для каждого товара генерировалась отдельная запись с характеристиками товара с адресом site/product/product-name/specs? Я так понимаю надо делать например поля в товаре с характеристиками и на что то вешать wp_insert_post(). Не очень понимаю с чего начать решать эту задачу, буду благодарен за подсказки.
Ответы (1 шт):
Надо сделать вывод своей страницы в том случае, если 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.