Поддержка Проблемы и решения Вставка кода сразу за body для определенной категории

  • нужно сразу за тегом body поставить код, но не для всех страниц, а только для записей определенной категории и записей дочерних категорий. подскажите как реализовать?

    знаю как сделать в цикле wordpress, а как за его пределами нет

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • нет такого решения?

    нужно сразу за тегом body поставить код, но не для всех страниц, а только для записей определенной категории и записей дочерних категорий. подскажите как реализовать?

    В помощь:
    https://developer.wordpress.org/reference/functions/in_category/
    https://developer.wordpress.org/reference/functions/get_header/

    На 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_категории’){
    /* ваш код */
    }
    }

    спасибо работает, но только для архива категории, а для записи принадлежащей к данной категории нет

    • Ответ изменён 3 года, 11 месяцев назад пользователем 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 файл вставить и инклудить в нужные категории

    спасибо большое

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Тема «Вставка кода сразу за body для определенной категории» закрыта для новых ответов.