Я пробовала много FAQ плагинов, но не один не соответствовал моим требованиям. Поэтому пришлось создать свой собственный FAQ.
Выглядит он так:
Что установить такой FAQ на ваш сайт нужно сделать несколько простых шагов.
Скопируйте код и вставьте его в файл function.php своей темы.
//FAQ
function dofaq_shortcode ( $atts, $content = null ) {
extract(shortcode_atts(array(
"color" => 'grey',
), $atts));
return do_shortcode('<div class="myfaq faq_'.$color.'">'.$content.'</div>
<script type="text/javascript">
if(location.hash) {
questnum = location.hash.replace(/#/g, "");
document.getElementById(questnum).style.display = "block";
}
jQuery(document).ready(function($) {
$(document).ready(function(){
$(".faq_links").click(function(){
$(this).parent().children("div.faq_body").toggle("normal");
return false;
});
});
});
</script>
');}
add_shortcode('dofaq', 'dofaq_shortcode');
function myfaq_shortcode ( $atts, $content = null ) {
extract(shortcode_atts(array(
"name" => ' ',
"question" => ' ',
), $atts));
return do_shortcode('<div><a href="#'.$name.'" class="faq_links">'.$question.'</a><div class="faq_body" id="'.$name.'" name="'.$name.'">'.$content.'<p><br /></p></div></div>');
}
add_shortcode('myfaq', 'myfaq_shortcode'); Скопируйте код и вставьте его в файл style.css своей темы.
/* My Faq */.faq_links {cursor:pointer;
display: block;
color: white;
font-weight: 800;
padding: 5px 5px 5px 10px;
margin-bottom: 10px;
text-decoration: none;
border-radius: 3px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px; }
.faq_body {display:none;
margin: 5px 5px 5px 30px;
}
/* Faq Colors*/.faq_grey div a.faq_links{background-color: #aaa; border-left: 5px solid #aaa;}
.faq_grey div a.faq_links:hover {background-color: #dddddd; border-left: 5px solid #aaa;}
.faq_blue div a.faq_links {background-color: #1ec8bb; border-left: 5px solid #1ec8bb;}
.faq_blue div a.faq_links:hover {background-color: #91d6d1; border-left: 5px solid #1ec8bb;}
.faq_red div a.faq_links {background-color: red; border-left: 5px solid red;}
.faq_red div a.faq_links:hover {background-color: pink; border-left: 5px solid red;}
.faq_green div a.faq_links {background-color: #4da54d; border-left: 5px solid #4da54d;}
.faq_green div a.faq_links:hover {background-color: #89c189; border-left: 5px solid #4da54d;}
.faq_yellow div a.faq_links {background-color: Gold; border-left: 5px solid Gold;}
.faq_yellow div a.faq_links:hover {background-color: #EEDD82; border-left: 5px solid Gold;}
/* END My Faq */ Для того чтобы шорткоды работали, их на странице нужно расположить правильно.
Всего будет два шорткода: dofaq и myfaq.
Он может быть на странице ТОЛЬКО ОДИН раз. Все шорткоды вопросов будут располагаться внутри. Этим шорткодом можно регулировать цветовую схему. По умолчанию цветовая схема вопросов – серая.
Чтобы изменить цвет нужно добавить атрибут color. Например для голубой цветовой схемы:
Также доступны еще следующие цвета: red, green и yellow. Все цвета можно увидит в Demo
Вопрос 1Ответ 1
Сколько вопросов -столько и блоков с шоркодами myfaq. Все они обязательно помещаются внутри шорткода dofaq.
Ниже пример кода FAQ, который размещен вначале статьи:
Как видите, теперь создавать и редактировать FAQ стало намного проще. А вот как это работает на моем сайте: FAQ
Если при открытие csv файла с помощью excel У все поехали ячейки - это простой… Read More
Простые шаги как происходит Загрузка проекта на Github и Автодеплой на сервер Сделайте работу проще! Read More
Миграция базы данных - помогают с этим библиотеки SQLAlchemy и Alembic. Read More
Основные Команды Git, которые точно пригодятся. Сохрани себе шпаргалку Git Read More
Установка PostgreSQL на сервер Read More
Как создать PrimaryKey в талице базы данных SQL [РЕШЕНО] Ошибка relation tablename_id_seq doesn't exist Read More
View Comments
После установки кода почему-то вопрос-ответ в развернутом виде отображается на странице. А если нажать на вопрос, тогда ответ прячется..
Добрый день! Надо видеть полную картину.
не отображается цвет самого блока
Сложно сказать, что именно не так, по Вашему комментарию
Благодарю за удобное решение! Нахожусь в процессе настройки своего сайта. Искала удобное решение без плагина. Попробую ваш вариант.
Остается только вопрос: при обновлении wp до новой версии старые настройки слетают. Как это отследить и вернуть то, что мной будет создано?
Можно пользоваться плагином Shortcodes, Actions and Filters. Тогда настройки будут сохранятся.
Добрый день! Спасибо за отличный FAQ) У меня возникла небольшая трудность: при добавлении иконки через в поле "Вопрос" всё ломается, вопрос не отображается, как будто там ничего не написано. Посмотрела в коде - между тегами <a> ничего нет. Помогите, пожалуйста...
Анастасия, напишите сам код, что именно и как Вы делаете?
В первых двух полях вопрос не отображается... Третий работает нормально. Возможно, это из-за кавычек...
Проблема решилась заменой двойных кавычек на одинарные. спасибо)
Это конечно хорошее решение ..
Надо применять ..
Но есть минус если тема обновляется ... то придется все что добавлялось в файлы темы еще раз.Вероятно есть решение как сохранить пользовательский код (как вот этот например) при обновлениях тем и самого пресса.(вариант сделать еще один конфиг-- как его сопрягнуть с темой)..
Александр, можно установить плагин Add Shortcodes Actions And Filters. И тогда все фильтры будут в отельном файле.