нужно сразу за тегом body поставить код, но не для всех страниц, а только для записей определенной категории и записей дочерних категорий. подскажите как реализовать?
В помощь:
Home
Home
На https://wp-kama.ru/function/ можно на русском прочитать про любую функцию.
$cat_id = get_query_var('cat');
if(!empty($cat_id)){
if($cat_id == 'ID_категории'){
/* ваш код */
}
}
$cat_id = get_query_var(‘cat’);
if(!empty($cat_id)){
if($cat_id == ‘ID_категории’){
/* ваш код */
}
}
спасибо работает, но только для архива категории, а для записи принадлежащей к данной категории нет
-
Ответ изменён 5 лет, 10 месяцев назад пользователем angden.
function my_function_echo_code(){
$cats = array(1,2,3,4,10,101); /* список ID категорий */
$code = 'здесь код';
if(is_single()){
global $post;
$post_cats = get_the_category( $post->ID);
if( !empty($post_cats) ){
foreach($post_cats as $cat){
if( array_search($cat->term_id, $cats) !== false){
echo $code;
break;
}
}
}
}
else{
$cat_id = get_query_var('cat');
if(!empty($cat_id) && array_search($cat_id, $cats) !== false){
echo $code;
}
}
}
/* выводим код */
my_function_echo_code();
а если код содержит ковычки?
<div id="eeFDnJAf"></div>
<script>(function(w,d,o,g,r,a,m){w[r]=w[r]||function(){
(w[r+'l']=w[r+'l']||[]).push(arguments)};if(!w.ABN){a=d.createElement(o),m=d.getElementsByTagName(o)[0];
a.async=1;a.src=g;m.parentNode.insertBefore(a,m)}})(window,document,'script','https://aaaa.com/libs/b.js','ABNS');
ABNS('eeFDnJAf', {id:1596130348});
</script>
экранируйте кавычки:
$code = "<div id=\"eeFDnJAf\"></div>
<script>(function(w,d,o,g,r,a,m){w[r]=w[r]||function(){
(w[r+'l']=w[r+'l']||[]).push(arguments)};if(!w.ABN){a=d.createElement(o),m=d.getElementsByTagName(o)[0];
a.async=1;a.src=g;m.parentNode.insertBefore(a,m)}})(window,document,'script','https://aaaa.com/libs/b.js','ABNS');
ABNS('eeFDnJAf', {id:1596130348});
</script>";
или если проще код в php файл вставить и инклудить в нужные категории