Вопрос довольно простой, но на самом деле сложный.
Я реализовал пользовательские боковые панели для каждой функции поста/страницы в своем блоге.
Это выглядит как:
<div id="<?php echo get_option('sidebar-layout');" ?>
<div id="content">
Some content
[myshortcode]
</div>
<div id="sidebar">
Sidebar
</div>
</div>
Опция sidebar-layout может иметь три значения — left, right и none. И ни один не по умолчанию. Все они устанавливаются через метабокс под постом/страницей.
Самая большая проблема здесь заключается в том, что когда пользователь выбирает левый — первый div получает «левый» класс, а все остальное основано на этом идентификаторе, например.
#left #content {
style;
}
А когда он берет «правильно», то применяется другой стиль:
#right #content {
another style;
}
Таким образом, мой «myshortcode» должен в основном изменить идентификатор родительского DIV.
Есть идеи, как этого добиться? Я считаю, что мой шорткод будет выполнен ПОСЛЕ идентификатора div.
Можете ли вы объяснить связь между вашим шорткодом и вашими
sidebar-layout
настройками? Судя по тому, как вы это описываете, вы используете метаданные поста. В вашем примере кода используетсяget_option()
which читает параметры всего сайта.Используйте этот код, чтобы повторить идентификатор вашего div
Если вы хотите применить стили в соответствии с выбором, сделанным пользователем, измените таблицу стилей следующим образом:
Надеюсь, это поможет.