Я пытаюсь внедрить разборные панели Bootstrap на моем веб-сайте, но что-то не работает должным образом. Я намерен изменить вкладки WooCommerce по умолчанию на сворачивающиеся панели/аккордеоны. Вот код, который я использовал, чтобы переопределить файл tabs.php WooCommerce в:Bootstrap Collapse: только одна панель за раз (возможно, проблема с библиотекой jQuery)
<?php
/**
* Single Product tabs
*
* @author WooThemes
* @package WooCommerce/Templates
* @version 2.0.0
*/
if (! defined('ABSPATH')) {
exit; // Exit if accessed directly
}
/**
* Filter tabs and allow third parties to add their own
*
* Each tab is an array containing title, callback and priority.
* @see woocommerce_default_product_tabs()
*/
$tabs = apply_filters('woocommerce_product_tabs', array());
if (!empty($tabs)):
?>
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<?php foreach ($tabs as $key => $tab) : ?>
<div class="panel panel-default">
<div class="panel-heading" role="tab">
<h4 class="panel-title">
<a data-toggle="collapse" role="button" data-parent="#accordion" href="#collapse-<?php echo $key ?>" class="collapsed">
<?php echo apply_filters('woocommerce_product_' . $key . '_tab_title', $tab['title'], $key) ?>
</a>
</h4>
</div>
<div id="collapse-<?php echo $key ?>" class="panel-collapse collapse">
<div class="panel-body">
<?php call_user_func($tab['callback'], $key, $tab) ?>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php
endif;
?>
</div><!-- .summary -->
Панель работает хорошо, единственное исключение в том, что я не могу иметь только один открытые панелей одновременно. Если я попытаюсь переключить вторую панель, другие не рухнут так, как должны. Я успешно реализовал панели раньше, но теперь что-то явно не работает.
Я подозреваю, что это может быть связано с библиотекой jQuery, поскольку она не включена нигде в этот момент. Я пробовал использовать как <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
, так и <script src="https://code.jquery.com/jquery-1.12.2.min.js" integrity="sha256-lZFHibXzMHo3GGeehn1hudTAP3Sc0uKXBXAzHX1sjtk=" crossorigin="anonymous"></script>
, но безрезультатно.
Fiddle: link (обратите внимание: я удалил код PHP и вставил какой-то фиктивный текст для заголовка и содержимого панели. В моем случае у меня будет всего 2 панели, а не 3).
Любые советы?
Update: Вот выводимый HTML: https://jsfiddle.net/e2vc545g/ (я не могу добавить весь HTML-код веб-страницы, как она превышает 3000 символов)
Либерал Jquery является треб для начальной загрузки, чтобы полностью функционировать – happymacarts
@happymacarts Как на мой оригинальный пост, Я пытался сделать это несколькими способами, но безрезультатно. Любое предложение для кода, который я должен включить в мой заголовок.php? Благодаря! –
Вы уверены, что ваш jQuery не загружается? с вашей консоли попробуйте этот '$ .fn.jquery'. Вы также можете попробовать загрузить копию jquery lib и поместить ее локально на свой сервер (в вашей папке __scripts__ или __js__) – happymacarts