Мне нужно динамически добавлять активный класс к короткому коду в wordpress на основе активного номера, установленного в его родительском коротком коде.Как заменить N-й экземпляр строки в PHP?
Родитель выглядит следующим образом:
$active = 3;
$output .= "\n\t\t".wpb_js_remove_wpautop($content);
переменные $ содержания технически может состоять из ничего между тегами Шорткодов, но в частности, должен включать в себя несколько дочерних шорткоды (это вкладка шорткод поэтому родитель закладка и дети - вкладка).
Что мне нужно сделать, это разобрать $content
и заменить NTH ($active
переменные) экземпляр [vc_tab
с [vc_tab active="true"
Я понимаю, что есть лучшие способы для разработки шорткода, чтобы компенсировать это, но я ограничен в чем я может быть, потому что я модифицирую Visual Composer для использования вкладок Bootstrap вместо вкладок jQuery и Bootstrap, которые должны иметь активный класс как для <li>
, так и для элементов <div class="tab-pane">
, но я не хочу, чтобы пользователям приходилось добавлять активный номер в родительский код и активный true/false для ребенка, так как это будет запутывать.
До сих пор я не могу найти замену первого вхождения или всех вхождений, а не N-го.
Временно я использую jQuery, чтобы сделать соответствующий <div>
активным, но это приводит к нежелательной FOUC, когда нет видимой области видимости при загрузке, а затем один всплывает на место при запуске jQuery.
$('.tabs-wrap').each(function(){
var activeTab = $(this).find('.tabbed li.active a').attr('href');
$(this).find(activeTab).addClass('active');
});
Спасибо, это отлично работает, за исключением того, что вместо исключения исключения при проверке ошибок I просто установите '$ active = 1' (возврат к значению по умолчанию) – tsdexter