В настоящее время я конвертирую созданный мной шаблон начальной загрузки в WordPress для учебных целей, однако, когда я перешел на javascript, все отлично работает, кроме вкладок с глубокими ссылками.Я не уверен, неправильно ли я поставил в очередь скрипты или это связано с тем, что постоянные ссылки портятся в WordPress?
Например, когда я нажимаю на одну из услуг на домашней странице, она открывает эту конкретную вкладку на странице цен.
/ productwave-to-wp / Prices # amazon-ebay /
/ productwave-to-wp / Prices # bespoke /
Теперь, когда я нажимаю на ссылку, URL-адрес изменяется, а вкладка - нет, и после обновления страницы URL-адрес не меняется навсе.
functions.php
<?php
function b2w_theme_js() {
wp_enqueue_script('_bootstrap_js', get_template_directory_uri() . '/lib/bootstrap/js/bootstrap.bundle.min.js', array('jquery'), '', true );
wp_enqueue_script('_jquery_js', get_template_directory_uri() . '/lib/jquery/jquery.min.js', array('jquery'), '', true );
wp_enqueue_script('_jquerymigrate_js', get_template_directory_uri() . '/lib/jquery/jquery-migrate.min.js', array('jquery'), '', true );
wp_enqueue_script('_main_js', get_template_directory_uri() . '/js/main.js', array('jquery'), '', true );
wp_enqueue_script('_tabs_js', get_template_directory_uri() . '/js/tabs.js', array('jquery'), '', true );
}
);
?>
tabs.js
$(document).ready(() => {
let url = location.href.replace(/\/$/, "");
if (location.hash) {
const hash = url.split("#");
$('#myTab a[href="#'+hash[1]+'"]').tab("show");
url = location.href.replace(/\/#/, "#");
history.replaceState(null, null, url);
setTimeout(() => {
$(window).scrollTop(0);
}, 400);
}
$('a[data-toggle="tab"]').on("click", function() {
let newUrl;
const hash = $(this).attr("href");
if(hash == "#ecommerce") {
newUrl = url.split("#")[0];
} else {
newUrl = url.split("#")[0] + hash;
}
newUrl += "/";
history.replaceState(null, null, newUrl);
});
});