2015-01-04 2 views
0

У меня есть код:Wordpress уникальный фон в сообщениях, которые находятся в определенной категории

<body <?php if(in_category(11446)) { echo "style=\"background-image: url('my-background-url-of-image');background-repeat:repeat;\" onclick=\"window.open('http://www.domain.com');\""; } ?> > 

Этот код работает только до загрузки страницы полностью, чем что-то происходит, и это не работает я предполагаю, что из инспектировать элемент, OnClick функции изменения, и я не могу найти, какую часть трюков это.

Что делает этот код, он устанавливает уникальный фон тела, который находится в определенной категории, и фон является интерактивным.

Но из-за некоторой ошибки javascript это не работает, когда страница загружается полной, поэтому, возможно, кто-нибудь может объяснить мне, как удалить attr на Javascript, а затем добавить мой с доменом, который я хочу. Или, может быть, привести пример, как сделать альтернативный код только с помощью href.

спасибо.

ответ

0

Я предполагаю, что вы создаете шаблон Wordpress, а фоновое изображение, которое будет использоваться, основывается на категории сообщения Wordpress.

Это не использует Javascript. Вместо этого то, что он делает, это создать блок объявления CSS внутри основного тега документа HTML5 на лету. Он не делает встроенного CSS для тега тела.

<?php 
// ==================================================== 
// Solution #1 
// Background Image Only 
// ==================================================== 

function GetThisWordpressPostCategory() { 
    // Do post category to filename mapping here 
    return("cars"); 
} 

function in_category() { 
    // Just a dummy to simulate Wordpress in_category call 
    return(true); 
} 

function BodyBackground($category) { 
    $bodyCss = ""; 
    if (in_category($category)) { 
    $bodyCss =<<<CSS 
<style type="text/css"> 
body { 
    background-image: url('{$category}.jpg'); 
} 
</style> 
CSS; 
    } 
    return($bodyCss); 
} 
?> 

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Category background</title> 
    <?php 
    $category = GetThisWordpressPostCategory(); 
    echo BodyBackground($category); 
    ?> 
    </head> 
    <body> 
    </body> 
</html> 


<?php 
// ==================================================== 
// Solution: 2 
// Clickable div spanning viewport 
// ==================================================== 


function GetThisWordpressPostCategory() { 
    // Do post category to filename mapping here 
    return("cars"); 
} 

function in_category() { 
    // Just a dummy to simulate Wordpress in_category call 
    return(true); 
} 

function PageCss($category) { 
    $pageCss = ""; 
    if (in_category($category)) { 
    $pageCss =<<<CSS 
<style type="text/css"> 
html, body, #page { 
    width: 100%; 
    height: 100%; 
    margin: 0; 
    padding: 0; 
    background-image: url('{$category}.jpg'); 
} 
#page-anchor { 
    display: block; 
    width: 100%; 
    height: 100%; 
} 
</style> 
CSS; 
    } 
    return($pageCss); 
} 
?> 

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Category background</title> 
    <?php echo PageCss(GetThisWordpressPostCategory()); ?> 
    </head> 
    <body> 
    <div id="page"> 
     <a id="page-anchor" href="http://www.google.com"></a> 
    </div> 
    </body> 
</html> 
+0

Спасибо за ваш ответ, я не создаю новую тему. Я использую этот код в header.php, чтобы просто отображать новый фон в сообщениях, которые находятся в определенной категории, но я не могу этого сделать, потому что Функция onclick работает неправильно. –

+0

Зачем вам нужно щелкнуть, чтобы загрузить фоновое изображение? Просто используйте мой код. Это то же самое, что и определение фонового изображения на основе категории, но выполнение его с помощью CSS вместо Javascript. –

+0

Мне нужен кликабельный фон, потому что я хочу использовать рекламу спонсоров, и как только пользователь, щелкнувший по фону, будет перенаправлен на сайт спонсоров. На данный момент отображаются мои подсказки backgroudns, но проблема в том, что он не может быть загружен после загрузки сайта. Ваш код намного лучше, чем я могу видеть, но я не знаю, как использовать aplly clickable фон с вашим кодом. –