У меня есть сайт, где у множества групп есть свои собственные категории, и существует желание брендировать эти категории логотипами владельцев групп.
Для каждой категории используется код вроде этого:
.category-org .d-header {
color: white !important;
background-color: white !important;
background-image: none !important;
background:white !important;
}
.category-org #site-text-logo {
content: url("/uploads/default/original/1X/a9d7d4f215f2013907002ffe13456d3f90a7f108.png") !important;
display: inline-block;
height: 50px;
font-size: 0;
margin-top: 5px;
margin-bottom: 0px;
}
Сложность в том, что при клике на логотип вы переходите на главную страницу сайта, а не в категорию. Это (в основном) решается следующим кодом:
<script type="text/javascript">
$(document).ready(function() {
$(".title #site-text-logo").click(function(event){
// не переходить на базовый URL
event.preventDefault();
// получить активную категорию из id элемента div
div = $("body[class*='category-']")[0];
// извлечь slug из класса, начинающегося с category-
var classes = $(div).attr('class');
var slug = classes.match(/category\-.+/g)[0].replace("category-","").split(" ")[0];
// установить href как URL slug
document.location = "/c/" + slug + "/";
})
});
</script>
Если кликнуть на логотип на странице категории или темы, вы попадёте на страницу категории. Отлично!
НО если кликнуть в крошечное пространство между логотипом и нижней частью заголовка, вы попадёте на главную страницу, а не на страницу категории. Почти невозможно определить, какое действие произойдёт. При наведении мыши на URL в нижней части Chrome отображается главная страница сайта, а не URL категории, независимо от того, куда вы собираетесь перейти.
(Я использовал Custom Header Links, чтобы добавить ссылку на главную страницу. Я не считаю, что это связано с описанным выше поведением.)
И я не могу поделиться ссылкой на сайт, так как категории, привязанные к конкретным подразделениям, видны только участникам групп.