<?php
/*

add_action('future_to_publish', 'ttteeesssttt', 10, 1);
function ttteeesssttt($post_id){

    debug("qweqweqwe");

}







$mobile_partners = array(
    "pulse-mobile" => 50,
    "smi2-mobile" => 50
);

$chance_mobile_partners = chance($mobile_partners);





if ( ! function_exists( 'profilemagazine_setup' ) ) :

    function profilemagazine_setup() {

        if(get_current_user_id() == 1){
            //ini_set('display_errors',1);error_reporting(E_ERROR);
        }

        set_post_thumbnail_size( 782, 440, true );

        //создаем зоны меню
        register_nav_menus( array(
            'header_menu' => __( 'Меню в шапке',      'profilemagazine' ),
            'burger_menu_1' => __( 'Меню в бургере 1',      'profilemagazine' ),
            'burger_menu_2' => __( 'Меню в бургере 2',      'profilemagazine' ),
            'footer_menu_1' => __( 'Меню в подвале 1',      'profilemagazine' ),
            'footer_menu_2' => __( 'Меню в подвале 2',      'profilemagazine' ),
            'footer_menu_3' => __( 'Меню в подвале 3',      'profilemagazine' ),
        ) );
        add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );

//настраиваем классы и обертки для меню
        function my_wp_nav_menu_args( $args='' ) {
            $args['container'] = 'div';
            $args['container_class'] = 'float-xs-none float-md-left';
            $args['menu_class'] = 'nav d-block d-md-flex';

            return $args;
        }

        add_theme_support( 'html5', array(
            'search-form', 'comment-form', 'comment-list', 'gallery', 'caption'
        ) );

        //форматы материалов, в будущем допилить вывод галерей
        add_theme_support(
            'post-formats',
            array(
                'aside', 'image', 'video', 'quote', 'link', 'gallery', 'status', 'audio', 'chat'
            )
        );

        add_editor_style( array( 'css/editor-style.css', 'genericons/genericons.css') );

        add_theme_support( 'customize-selective-refresh-widgets' );

        add_theme_support( 'post-thumbnails', array( 'post', 'profile_article', 'anew', 'bwg_gallery', 'guest-author', 'yellow' ) );
    }
endif;




//зоны для виджетов
function profilemagazine_widgets_init() {
    // для новостей
    register_sidebar( array(
        'name'          => __( 'Левый сайдбар', 'profilemagazine' ),
        'id'            => 'left_sidebar',
        'description'   => __( 'Запихните сюда что-нибудь, чтобы оно появилось на сайте', 'profilemagazine' ),
        'before_widget' => '',
        'after_widget'  => '',
        'before_title'  => '',
        'after_title'   => '',
    ) );
    // для поиска
    register_sidebar( array(
        'name'          => __( 'Площадка для поиска', 'profilemagazine' ),
        'id'            => 'search_sidebar',
        'description'   => __( 'Запихните сюда что-нибудь, чтобы оно появилось на сайте', 'profilemagazine' ),
        'before_widget' => '',
        'after_widget'  => '',
        'before_title'  => '',
        'after_title'   => '',
    ) );
    //для баннера или двух материалов справа
    register_sidebar( array(
        'name'          => __( 'Правый сайдбар', 'profilemagazine' ),
        'id'            => 'right_sidebar',
        'description'   => __( 'Запихните сюда что-нибудь, чтобы оно появилось на сайте', 'profilemagazine' ),
        'before_widget' => '',
        'after_widget'  => '',
        'before_title'  => '',
        'after_title'   => '',
    ) );
    //для верхнего большого баннера
    register_sidebar( array(
        'name'          => __( 'Верхний сайдбар', 'profilemagazine' ),
        'id'            => 'top_sidebar',
        'description'   => __( 'Запихните сюда что-нибудь, чтобы оно появилось на сайте', 'profilemagazine' ),
        'before_widget' => '',
        'after_widget'  => '',
        'before_title'  => '',
        'after_title'   => '',
    ) );
}

add_action( 'widgets_init', 'profilemagazine_widgets_init' );

function profilemagazine_javascript_detection() {
    echo "<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>\n";
}

add_action( 'wp_head', 'profilemagazine_javascript_detection', 0 );



//add_filter('posts_where', 'remove_breaking_from_feed',10,1);
function remove_breaking_from_feed($where) {
    if(is_yn() || is_zen()) {
        $where .= " AND `wp_posts`.`ID` NOT IN (SELECT `post_id` FROM `wp_postmeta` WHERE `meta_key` = '_breaking' AND `meta_value` = '1') ";
    }
    return $where;
}

function profilemagazine_resource_hints( $urls, $relation_type ) {
    if ( wp_style_is( 'profilemagazine-fonts', 'queue' ) && 'preconnect' === $relation_type ) {
        if ( version_compare( $GLOBALS['wp_version'], '4.7-alpha', '>=' ) ) {
            $urls[] = array(
                'href' => 'https://fonts.gstatic.com',
                'crossorigin',
            );
        } else {
            $urls[] = 'https://fonts.gstatic.com';
        }
    }

    return $urls;
}
add_filter('wp_resource_hints', 'profilemagazine_resource_hints', 10, 2);



//верстка формы поиска
function profilemagazine_search_form_modify( ) {
    ob_start();
    ?>
    <form class="searchform d-block d-sm-block d-lg-block" action="/" method="GET">
        <button class="searchform__btn" type="submit">
            <svg viewBox="0 0 24 25" class="align-baseline svg-icon">
                <use xlink:href="/wp-content/themes/profile/assets/img/sprites-svg/dist/sprite.svg#lens"></use>
            </svg>
            <svg viewBox="0 0 24 25" class="align-baseline svg-icon">
                <use xlink:href="/wp-content/themes/profile/assets/img/sprites-svg/dist/sprite.svg#lens-white"></use>
            </svg>
        </button>
        <input name="s" type="search" placeholder="Поиск по сайту">
    </form>
    <?php

    $html = ob_get_clean();

    return $html;
}

add_filter( 'get_search_form', 'profilemagazine_search_form_modify' );



//инициализация параметров для регистрации типов постов
function article_register_post_type_init() {
    $labels = array(
        'name' => 'Статьи',
        'singular_name' => 'Статью',
        'add_new' => 'Добавить статью',
        'add_new_item' => 'Добавить новую статью',
        'edit_item' => 'Редактировать статью',
        'new_item' => 'Новая статья',
        'all_items' => 'Все статьи',
        'view_item' => 'Просмотр статей на сайте',
        'search_items' => 'Искать статьи',
        'not_found' =>  'Статей не найдено.',
        'not_found_in_trash' => 'В корзине нет статей.',
        'menu_name' => 'Статьи'
    );
    $args = array(
        'labels' => $labels,
        'public' => true,
        'show_ui' => true,
        'has_archive' => false,
        'supports' => array( 'title', 'subtitle', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats' ),
        'taxonomies' => array('post_tag','category'),
        'rewrite' => array('slug' => '','with_front' => true),
        'can_export' => true,
        'show_in_menu' => true,
        'menu_position' => 5,
        'show_in_nav_menus' => true,
        'publicly_queryable' => true,
        'exclude_from_search' => false,
        'query_var' => true,
        'capability_type' => 'post',
        'rest_base' => 'posts',
        'yarpp_support' => true


    );
    register_post_type('profile_article', $args);

}
add_action( 'init', 'article_register_post_type_init' );

//регистрация статей в качестве типа постов
add_filter( 'post_updated_messages', 'anew_post_type_messages' );
function anew_post_type_messages( $messages ) {
    global $post, $post_ID;

    $messages['functions'] = array( // functions - название созданного нами типа записей
        0 => '', // Данный индекс не используется.
        1 => sprintf( 'Новость обновлена. <a href="%s">Просмотр</a>', esc_url( get_permalink($post_ID) ) ),
        2 => 'Параметр обновлён.',
        3 => 'Параметр удалён.',
        4 => 'Новость обновлена',
        5 => isset($_GET['revision']) ? sprintf( 'Новость восстановлена из редакции: %s', wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
        6 => sprintf( 'Новость опубликована на сайте. <a href="%s">Просмотр</a>', esc_url( get_permalink($post_ID) ) ),
        7 => 'Новость сохранена.',
        8 => sprintf( 'Отправлено на проверку. <a target="_blank" href="%s">Просмотр</a>', esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
        9 => sprintf( 'Запланировано на публикацию: <strong>%1$s</strong>. <a target="_blank" href="%2$s">Просмотр</a>', date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ), esc_url( get_permalink($post_ID) ) ),
        10 => sprintf( 'Черновик обновлён. <a target="_blank" href="%s">Просмотр</a>', esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
    );

    return $messages;
}


//Проверка, на новом мы посте или нет
function is_edit_page($new_edit = null) {
    global $pagenow;
    if (!is_admin()) return false;


    if($new_edit == "edit")
        return in_array( $pagenow, array( 'post.php',  ) );
    elseif($new_edit == "new") //check for new post page
        return in_array( $pagenow, array( 'post-new.php' ) );
    else //check for either new or edit
        return in_array( $pagenow, array( 'post.php', 'post-new.php' ) );
}
//Редиректим Артемку со списка желтухи в список новостей
//add_action('current_screen', 'hide_yellow_list');
function hide_yellow_list() {
    $screen = get_current_screen();
    if ($screen->id == 'edit-yellow' && in_array(get_current_user_id(), array(17))) {
        wp_redirect('/wp-admin/edit.php?post_type=anew');
    }
    if (is_edit_page('new') && in_array(get_current_user_id(), array(17)) && $screen->id == 'yellow') {
        wp_redirect('/wp-admin/post-new.php?post_type=anew');
    }
}

//add_action('admin_head', 'hide_news_for_yellow');
function hide_news_for_yellow() {
    $screen = get_current_screen();
    if (!in_array(get_current_user_id(), array(17))){ return; }
    if ($screen->id == 'yellow') {
        echo '<style>#menu-posts-anew{display:none;}</style>';
    } else {
        echo '<style>#menu-posts-yellow{display:none;}</style>';
    }
    echo '<style>#last-edit{display:none!important;}</style>';
}
////
//регистрация желтухи в качестве типа материала

add_action('init', 'yellow_register_post_type_init');

function yellow_register_post_type_init() {

    $labels = array(
        'name' => 'Интересные факты',
        'singular_name' => 'факт',
        'add_new' => 'Добавить факт',
        'add_new_item' => 'Добавить факт',
        'edit_item' => 'Редактировать факт',
        'new_item' => 'Свежачок',
        'all_items' => 'Все факты',
        'view_item' => 'Просмотр фактов на сайте',
        'search_items' => 'Искать среди фактов',
        'not_found' =>  'Не найдено.',
        'not_found_in_trash' => 'В корзине нет фактов.',
        'menu_name' => 'Факты'
    );

    $args = array(
        'labels' => $labels,
        'public' => true,
        'show_ui' => true,
        'has_archive' => true,
        'menu_position' => 6,
        'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats' ),
        'taxonomies' => array('post_tag','category'),
        'rewrite' => array('slug' => 'gregator','with_front' => false),
        'query_var' => true,
        'capability_type' => 'post',
        'rest_base' => 'posts',
        'publicly_queryable' => true,
        'exclude_from_search' => false,
        'yarpp_support' => true
    );
    register_post_type('yellow', $args);
}

//регистрация новостей в качестве типа постов
add_action( 'init', 'anew_register_post_type_init' );
function anew_register_post_type_init() {
    $labels = array(
        'name' => 'Новости',
        'singular_name' => 'Новость',
        'add_new' => 'Добавить новость',
        'add_new_item' => 'Добавить свежую новость',
        'edit_item' => 'Редактировать новость',
        'new_item' => 'Свежая новость',
        'all_items' => 'Все новости',
        'view_item' => 'Просмотр новостей на сайте',
        'search_items' => 'Искать новости',
        'not_found' =>  'Новостей не найдено.',
        'not_found_in_trash' => 'В корзине нет новостей.',
        'menu_name' => 'Новости'
    );
    $args = array(
        'labels' => $labels,
        'public' => true,
        'show_ui' => true,
        'has_archive' => true,
        'menu_position' => 6,
        'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats' ),
        'taxonomies' => array('post_tag','category'),
        'rewrite' => array('slug' => 'news','with_front' => true),
        'query_var' => true,
        'capability_type' => 'post',
        'rest_base' => 'posts',
        'publicly_queryable' => true,
        'exclude_from_search' => false,
        'yarpp_support' => true
    );
    register_post_type('anew', $args);
}

//виджет новостей

//add_action( 'widgets_init', 'profileNewsWidget_register_widget' );

//виджет для баннера, куда надо запихать только номер зоны
class profileBannerWidget extends WP_Widget {
    function __construct() {
        parent::__construct('profileBannerWidget',__('Баннер', 'Profile_Magazine'),array( 'description' => __( 'Баннер', 'Profile_Magazine' ), ));
    }
    public function widget( $args, $instance )
    {
        $adfoxDate = date("U");
        $the_sidebars = wp_get_sidebars_widgets();
        $bCount = count($the_sidebars['right_sidebar']);
        $cell = ($bCount == 1) ? 'cell cell--double' : 'cell';
        $html = '';
        if ($args['id'] == 'right_sidebar' && !wp_is_mobile()):
            if(test_ad()){
                $html = '
                <div class="cell special__multi special--gray" id="AdwolfBanner264x558_173300" style="max-height:558px;" ></div>
                <script type="text/javascript" >
                new Adwolf({
                    placeholderId: \'AdwolfBanner264x558_173300\',
                    width: 264,
                    height: 558,
                    link: \'https://a.adwolf.ru/3145/prepareCode?pp=bl&ps=cmm&p2=km&pct=a&plp=a&pli=a&pop=a&pr=\'}, {puids:{}}, {paps:{}}, {});
                </script>
            ';
            }else{

                if (!defined('MAX_PATH')) {
                    define('MAX_PATH', '/var/www/revive');
                }
                if (@include_once(MAX_PATH . '/www/delivery/alocal.php')) {
                    if (!isset($phpAds_context)) {
                        $phpAds_context = array();
                    }
                    if(in_array(get_current_user_id(), array(1,4))) {
                        $phpAds_raw = view_local('', 1, 0, 0, '', '', '0', $phpAds_context, '');
                        //$phpAds_raw['html'] = str_replace('bannerid', 'bvar', $phpAds_raw['html']);
                        //$phpAds_raw['html'] = str_replace('clickTag', 'ctvar', $phpAds_raw['html']);
                        //$phpAds_raw['html'] = str_replace('advert', 'somestring3', $phpAds_raw['html']);
                        //$phpAds_raw['html'] = str_replace('campaign', 'somestring4', $phpAds_raw['html']);
                        //$phpAds_raw['html'] = str_replace('zoneid', 'somestring5', $phpAds_raw['html']);
                        //$phpAds_raw['html'] = str_replace('delivery', 'dfolder', $phpAds_raw['html']);
                    } else {
                        $phpAds_raw = view_local('', 1, 0, 0, '', '', '0', $phpAds_context, '');
                        //$phpAds_raw['html'] = str_replace('bannerid', 'bvar', $phpAds_raw['html']);
                        //$phpAds_raw['html'] = str_replace('clickTag', 'ctvar', $phpAds_raw['html']);
                        //$phpAds_raw['html'] = str_replace('advert', 'somestring3', $phpAds_raw['html']);
                        //$phpAds_raw['html'] = str_replace('campaign', 'somestring4', $phpAds_raw['html']);
                        //$phpAds_raw['html'] = str_replace('zoneid', 'somestring5', $phpAds_raw['html']);
                        //$phpAds_raw['html'] = str_replace('delivery', 'dfolder', $phpAds_raw['html']);
                    }
                    $html .= "\t\t" . '<div class="special--main special--gray cell cell--double justify-content-center align-items-center">';
                    $html .= $phpAds_raw['html'];

                    $html .= "\t\t" . '</div>';
                    //$html .= "\t\t" . '</div>';
                }


            }
            //


            //$html .= "\t\t".'<div class="special--main special--gray d-flex cell justify-content-center align-items-center">';
            //$html .= $phpAds_raw['html'];
            //$html .= "<div id=\"adfox_158101195510596829\"></div><script>window.Ya.adfoxCode.create({ownerId: 242477,containerId: 'adfox_158101195510596829',params: {p1: 'ciwcr',p2: 'fpld'}});</script>";
            //$html .= "\t\t".'</div>';
            $randomvariable =  '';//это говно потом убрать при случае


            //ира "забыла", блять... забыла она
            if (1==2 && !is_post_type_archive() && get_query_var('is_event') != 'true' && (in_array(get_current_page_category(), array(3360, 3365, 3368, 3366, 3367)) || (in_array(wp_get_post_categories(get_queried_object_id())[0], array(3360, 3365, 3368, 3366, 3367)) && is_single()))){
                //большой баннер 33
                $html .= '<!-----------------';
                $html .= wp_get_post_categories(get_queried_object_id())[0];
                $html .= '------------------>';
                if (!defined('MAX_PATH')){define('MAX_PATH', '/var/www/revive');}
                if (@include_once(MAX_PATH . '/www/delivery/alocal.php')) {
                    if (!isset($phpAds_context)) {
                        $phpAds_context = array();
                    }
                    $phpAds_raw = view_local('', 33, 0, 0, '', '', '0', $phpAds_context, '');
                }

                $html .= "\t\t".'<div class="special--main special--gray d-flex cell cell--double justify-content-center align-items-center">';
                $html .= $phpAds_raw['html'];
                $html .= "\t\t".'</div>';
            } else {
                //два маленьких баннера 49 и 50уче

            }

        elseif ($args['id'] == 'top_sidebar' && 1==2):
            $html .= "\t".'<div class="container-fluid d-none d-md-flex justify-content-center align-items-center">';
            $html .= "\t\t".'<div class="special--main d-flex justify-content-center">';
            $html .= "\t\t\t".'<!-- Revive Adserver Asynchronous JS Tag - Generated with Revive Adserver v4.1.4 -->';
            $html .= "\t\t\t".'<ins data-revive-zoneid="'.$instance['zoneid'].'" data-revive-id="718f7b71460f581846c13b5d8d70857b"></ins>';
            $html .= "\t\t\t".'<script async src="//banner.profile.ru/www/delivery/asyncjs.php"></script>';
            $html .= "\t\t".'</div>';
            $html .= "\t".'</div>';
        endif;
        echo $html;
    }
    public function form( $instance ) {
        $zoneid = ( isset( $instance[ 'zoneid' ] ) ) ? $instance[ 'zoneid' ] : __( '', 'profileBannerWidget' );
        ?>
        <p>
            <label for="<?php echo $this->get_field_id( 'zoneid' ); ?>"><?php _e( 'Номер зоны:' ); ?></label>
            <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'zoneid' ); ?>" type="text" value="<?php echo esc_attr( $zoneid ); ?>" />
        </p>
        <?php
    }
    public function update( $new_instance, $old_instance ) {
        $instance = array();
        $instance['zoneid'] = ( ! empty( $new_instance['zoneid'] ) ) ? strip_tags( $new_instance['zoneid'] ) : '';

        return $instance;
    }
}
function profileBannerWidget_register_widget() {
    register_widget( 'profileBannerWidget' );
}
add_action( 'widgets_init', 'profileBannerWidget_register_widget' );





function header_menu_1(){
    $first =  (!is_post_type_archive()) ? '<li class="nav-item d-inline-block d-md-none"><a class="nav-link nav-link--feedback" href="/news/">Новости</a></li>' : '';
    $args = array(
        'menu'            => '',              // (string) Название выводимого меню (указывается в админке при создании меню, приоритетнее
        // чем указанное местоположение theme_location - если указано, то параметр theme_location игнорируется)
        'container'       => 'div',           // (string) Контейнер меню. Обворачиватель ul. Указывается тег контейнера (по умолчанию в тег div)
        'container_class' => '',              // (string) class контейнера (div тега)
        'container_id'    => '',              // (string) id контейнера (div тега)
        'menu_class'      => 'nav d-block d-md-flex',          // (string) class самого меню (ul тега)
        'menu_id'         => '',              // (string) id самого меню (ul тега)
        'echo'            => true,            // (boolean) Выводить на экран или возвращать для обработки
        'fallback_cb'     => '',  // (string) Используемая (резервная) функция, если меню не существует (не удалось получить)
        'before'          => '',              // (string) Текст перед <a> каждой ссылки
        'after'           => '',              // (string) Текст после </a> каждой ссылки
        'link_before'     => '',              // (string) Текст перед анкором (текстом) ссылки
        'link_after'      => '',              // (string) Текст после анкора (текста) ссылки
        'depth'           => 0,               // (integer) Глубина вложенности (0 - неограничена, 2 - двухуровневое меню)
        'walker'          => new Child_Wrap,              // (object) Класс собирающий меню. Default: new Walker_Nav_Menu
        'theme_location'  => 'header_menu_1',               // (string) Расположение меню в шаблоне. (указывается ключ которым было зарегистрировано меню в функции register_nav_menus)
        'items_wrap' => '<ul id="menu-levoe-menyu" class="nav d-block d-md-flex">'.$first.'%3$s</ul>'
    );
    return wp_nav_menu( $args );
}
function main_menu_classes($classes, $item, $args) {
    if($args->theme_location == 'header_menu_1') {
        $classes[] = 'nav-item';
    }
    return $classes;
}
add_filter('nav_menu_css_class', 'main_menu_classes', 1, 3);
function main_submenu_classes($classes, $item, $args) {
    if($args->theme_location == 'header_menu_1' && $item->menu_item_parent != 0) {
        $classes = [];
    }
    return $classes;
}

add_filter( 'wp_nav_menu_objects', 'add_has_children_to_nav_items' );
function new_nav_menu_link_attributes( $atts, $item, $args ) {
    if($args->theme_location == 'header_menu_1') {
        $color = get_term_meta($item->object_id,'color',1);
        if($item->menu_item_parent == 0){
            $atts['class'] = "nav-link nav-link--{$color}";
        }else{
            $atts['class'] = "rubric__link";
        }
        if ($item->current || $item->current_item_ancestor || $item->current_item_parent){
            $atts['class'] .= ' active';
        }
    }
    return $atts;
}
add_filter( 'nav_menu_link_attributes', 'new_nav_menu_link_attributes', 10, 3 );
class Child_Wrap extends Walker_Nav_Menu{

    function start_lvl(&$output, $depth = 0, $args = array())
    {
        $indent = str_repeat("\t", $depth);
        $output .= "\n$indent<div class=\"subnav__wrapper\"><ul class=\"d-none d-lg-block subnav\">\n";
    }
    function end_lvl(&$output, $depth = 0, $args = array())
    {
        $indent = str_repeat("\t", $depth);
        $output .= "$indent</ul></div>\n";
    }
}

add_filter( 'walker_nav_menu_start_el', 'filter_function_name_2880', 10, 4 );
function filter_function_name_2880( $item_output, $item, $depth, $args ){


    return $item_output;
}

//Верстка правого меню
function header_menu_2() {
    $menu_name = 'header_menu_2';
    if (($locations = get_nav_menu_locations()) && isset($locations[$menu_name])) {
        $menu = wp_get_nav_menu_object($locations[$menu_name]);
        $menu_items = wp_get_nav_menu_items($menu->term_id);

        //манипуляции с названием меню для правильного отсечения по последнему пробелу
        preg_match('/([\w*\W]*)\s(.*)$/', $menu->name, $mn);
        unset($mn[0]);
        $mn = array_values($mn);
        $menu_list  = "\t\t\t\t". '<ul class="rubric">' ."\n";
        $menu_list .= "\t\t\t\t\t". '<li><span class="rubric__direct"><i></i>'.'<span class="d-inline-block d-sm-inline-block d-md-none d-xl-inline-block">'.$mn[0].'&nbsp;</span>'.$mn[1].'</span>' ."\n";
        $menu_list .= "\t\t\t\t\t\t". '<ul>' ."\n";
        foreach ((array) $menu_items as $key => $menu_item) {
            $title = $menu_item->title;
            $url = $menu_item->url;
            $current = ( $menu_item->object_id == get_queried_object_id() ) ? ' active ' : '';
            $menu_list .= "\t\t\t\t\t". '<li><a class="rubric__link" href="'. $url .'">'. $title .'</a></li>' ."\n";
        }
        $menu_list .= "\t\t\t\t\t\t". '</ul>' ."\n";
        $menu_list .= "\t\t\t\t\t". '</li>' ."\n";
        $menu_list .= "\t\t\t\t". '</ul>' ."\n";
    }
    echo $menu_list;
}

//Верстка скрытого меню для мобилок - шапка
function header_menu_3(){
    $menu_name = 'header_menu_3';
    if (($locations = get_nav_menu_locations()) && isset($locations[$menu_name])) {
        $menu = wp_get_nav_menu_object($locations[$menu_name]);
        $menu_items = wp_get_nav_menu_items($menu->term_id);

        $menu_list = "\t\t\t\t". '<ul class="nav nav__light d-block d-md-none">' ."\n";
        foreach ((array) $menu_items as $key => $menu_item) {
            $title = $menu_item->title;
            $url = $menu_item->url;
            $current = ( $menu_item->object_id == get_queried_object_id() ) ? ' active ' : '';
            $menu_list .= "\t\t\t\t\t". '<li class="nav-item"><a class="nav-link" href="'. $url .'">'. $title .'</a></li>' ."\n";
        }
        $menu_list .= "\t\t\t\t". '</ul>' ."\n";
    }
    echo $menu_list;
}

//Верстка первого и второго меню в подвале
function footer_menu($menu_name){
    if (($locations = get_nav_menu_locations()) && isset($locations[$menu_name])) {
        $menu = wp_get_nav_menu_object($locations[$menu_name]);
        $menu_items = wp_get_nav_menu_items($menu->term_id);

        $menu_list = "\t\t\t\t". '<ul class="nav d-block d-md-flex">' ."\n";
        foreach ((array) $menu_items as $key => $menu_item) {
            $title = $menu_item->title;
            $url = $menu_item->url;
            $current = ( $menu_item->object_id == get_queried_object_id() ) ? ' active ' : '';
            $menu_list .= "\t\t\t\t\t". '<li class="nav-item"><a class="nav-link" href="'. $url .'">'. $title .'</a></li>' ."\n";
        }

        ob_start();
        dynamic_sidebar( 'search_sidebar' );
        $search = ob_get_clean();

        $menu_list .= '<li class="nav-item">'.$search.'</li>';
        $menu_list .= "\t\t\t\t". '</ul>' ."\n";
    }
    echo $menu_list;
}

//Верстка третьего меню в подвале
function footer_menu_3(){
    $menu_name = 'footer_menu_3';
    if (($locations = get_nav_menu_locations()) && isset($locations[$menu_name])) {
        $menu = wp_get_nav_menu_object($locations[$menu_name]);
        $menu_items = wp_get_nav_menu_items($menu->term_id);

        $menu_list .= "\t\t\t\t". '<div class="d-block d-md-none">' ."\n";
        foreach ((array) $menu_items as $key => $menu_item) {
            $title = $menu_item->title;
            $url = $menu_item->url;
            $menu_list .= "\t\t\t\t\t". '<p><a href="'. $url .'">'. $title .'</a></p>' ."\n";
        }
        $menu_list .= "\t\t\t\t". '</div>' ."\n";
    }
    echo $menu_list;
}






//Хуевая альфа версия виджета избранных материалов для главной
class profileRecentPostsWidget extends WP_Widget {
    function __construct() {
        parent::__construct('profileRecentPostsWidget',__('Избранные материалы', 'Profile_Magazine'),array( 'description' => __( 'Пока альфа, просто введем ИД', 'Profile_Magazine' ), ));
    }
    public function widget( $args, $instance ) {
        foreach ($instance as $postID):
            $post = get_post((int)$postID);
            $cat = array_shift(get_the_category($postID));
            $html =  "\t".'<div class="col-12 col-md-4 col-xl-3 float-left">';
            $html .= "\t\t".'<div class="article cell">';
            $html .= "\t\t\t".'<a class="article__frame" href="'.get_permalink($post).'">';
            $html .= "\t\t\t\t".'<img loading="lazy" class="d-block" src="'.wp_get_attachment_url( get_post_thumbnail_id($post), 'thumbnail' ).'" alt="'. get_the_title($postID).'">';
            $html .= "\t\t\t\t".'<span class="sticker sticker--'.get_term_meta($cat->term_id,'color',1).'">'.$cat->name.'</span>';
            $html .= "\t\t\t".'</a>';
            $html .= "\t\t\t".'<div class="article__body">';
            $html .= "\t\t\t\t".'<a class="article__title"  href="'.get_permalink($post).'">'. get_the_title($postID).'</a>';
            $html .= "\t\t\t\t".'<div class="article__detail">';
            $html .= "\t\t\t\t\t".'<time datetime="'.get_the_date('Y-m-d H:s').'" class="article__data">'. get_the_date('d.m.Y',$post).'</time>';
            foreach (get_coauthors($postID) as $author ):
                $html .= "\t\t\t\t\t".'<a class="article__author" href="'.get_author_posts_url( $author->ID, $author->user_nicename ).'">'.$author->display_name.'</a>';
            endforeach;
            $html .= "\t\t\t\t".'</div>';
            $html .= "\t\t\t".'</div>';
            $html .= "\t\t".'</div>';
            $html .= "\t".'</div>';
            echo $html;
        endforeach;

    }
    public function form( $instance ) {
        $first = ( isset( $instance[ 'first' ] ) ) ? $instance[ 'first' ] : __( '', 'profileRecentPostsWidget' );
        $second = ( isset( $instance[ 'second' ] ) ) ? $instance[ 'second' ] : __( '', 'profileRecentPostsWidget' );
        ?>
        <p>
            <label for="<?php echo $this->get_field_id( 'first' ); ?>"><?php _e( 'ИД Первого поста:' ); ?></label>
            <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'first' ); ?>" type="post" value="<?php echo esc_attr( $first ); ?>" />
        </p>
        <p>
            <label for="<?php echo $this->get_field_id( 'second' ); ?>"><?php _e( 'ИД второго поста:' ); ?></label>
            <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'second' ); ?>" type="post" value="<?php echo esc_attr( $second ); ?>" />
        </p>
        <?php
    }
    public function update( $new_instance, $old_instance ) {
        $instance = array();
        $instance['first'] = ( ! empty( $new_instance['first'] ) ) ? strip_tags( $new_instance['first'] ) : '';
        $instance['second'] = ( ! empty( $new_instance['second'] ) ) ? strip_tags( $new_instance['second'] ) : '';

        return $instance;
    }
}
//регистрируем виджеты
function profileRecentPostsWidget_register_widget() {
    register_widget( 'profileRecentPostsWidget' );
}
add_action( 'widgets_init', 'profileRecentPostsWidget_register_widget' );

//колорпикер
add_action( 'admin_enqueue_scripts', 'add_color_picker' );
function add_color_picker( $hook ) {

    if( is_admin() ) {

        wp_enqueue_script( 'wp-color-picker' );
        wp_enqueue_style( 'wp-color-picker' );

        // Include our custom jQuery file with WordPress Color Picker dependency
        wp_enqueue_script( 'custom-script-handle', '/wp-content/themes/profile/assets/js/admin/app.js', false, true );
    }
}




//произвольные поля в категории
$taxname = 'category';
add_action("{$taxname}_add_form_fields", 'add_new_custom_fields');
add_action("{$taxname}_edit_form_fields", 'edit_new_custom_fields');
add_action("create_{$taxname}", 'save_custom_taxonomy_meta');
//add_action("edited_{$taxname}", 'save_custom_taxonomy_meta');
//редактирование кастомных полей в категории
function edit_new_custom_fields( $term ) {
    global $colors;
    global $termTaxTypes;
    ?>
    <tr class="form-field">
        <th scope="row" valign="top"><label>Тип</label></th>
        <td>
            <select name="extra[type]">
                <?php foreach ($termTaxTypes as $key => $val): ?>
                    <?php $selected = (esc_attr( get_term_meta( $term->term_id, 'type', 1 ) == $key)) ? " selected " : "" ;?>
                    <option class="<?php echo $key; ?>" value="<?php echo $key; ?>"<?php echo $selected; ?>><?php echo $val; ?></option>
                <?php endforeach; ?>
            </select>
        </td>
    </tr>
    <tr class="form-field">
        <th scope="row" valign="top"><label for="extra-calendar">Показывать календарь</label></th>
        <td>
            <input value="1" name="extra[calendar]" id="extra-calendar" type="checkbox" <?php echo (esc_attr( get_term_meta( $term->term_id, 'calendar', true ) == 1)) ? " checked " : "" ;?> />
        </td>
    </tr>
    <tr class="form-field">
        <th scope="row" valign="top"><label>Цвет заголовка</label></th>
        <td>
            <select name="extra[color]">
                <?php foreach ($colors as $key => $val): ?>
                    <?php $selected = (esc_attr( get_term_meta( $term->term_id, 'color', 1 ) == $key)) ? " selected " : "" ;?>
                    <option class="<?php echo $key; ?>" value="<?php echo $key; ?>"<?php echo $selected; ?>><?php echo $val; ?></option>
                <?php endforeach; ?>
            </select>
            <span class="description">Цвет заголовка и пункта меню для категории</span>
        </td>
    </tr>
    <tr class="form-field">
        <th scope="row" valign="top"><label>Цвет фона</label></th>
        <td>
            <input class="color-picker" type="text" name="extra[bgcolor]" value="<?php echo esc_attr( get_term_meta( $term->term_id, 'bgcolor', 1 )); ?>" />
            <span class="description">Цвет фона тела сайта</span>
        </td>
    </tr>
    <tr class="form-field">
        <th scope="row" valign="top"><label>Подзаголовок</label></th>
        <td>
            <?php
            $args = array(
                'wpautop'       => 1,
                'media_buttons' => 1,
                'textarea_name' => 'extra[subtitle]', //нужно указывать!
                'textarea_rows' => 20,
                'tabindex'      => null,
                'editor_css'    => '',
                'editor_class'  => 'large-text',
                'teeny'         => 0,
                'dfw'           => 0,
                'tinymce'       => 1,
                'quicktags'     => 1,
                'drag_drop_upload' => false
            );
            wp_editor(html_entity_decode(esc_attr( get_term_meta( $term->term_id, 'subtitle', 1 ))), 'subtitle',$args);
            ?>
            <span class="description">Подзаголовок</span>
        </td>
    </tr>
    <tr class="form-field">
        <th scope="row" valign="top"><label>Ссылка с картинки</label></th>
        <td>
            <input type="text" name="extra[link]" value="<?php echo esc_attr( get_term_meta( $term->term_id, 'link', 1 )); ?>" />
            <br/>
            <span class="description">Ссылка с картинки</span>
        </td>
    </tr>
    <tr class="form-field">
        <th scope="row" valign="top"><label>Текст над заголовком</label></th>
        <td>
            <input type="text" name="extra[suptitle]" value="<?php echo esc_attr( get_term_meta( $term->term_id, 'suptitle', 1 )); ?>" />
            <br/>
            <span class="description">Текст над заголовком</span>
        </td>
    </tr>

    <?php
}

//добавление кастомных полей для категории
function add_new_custom_fields( $taxonomy_slug ){
    global $colors;
    global $termTaxTypes;
    ?>
    <div class="form-field">
        <label for="tag-color">Тип</label>
        <select name="extra[type]">
            <?php foreach ($termTaxTypes as $key => $val): ?>
                <option class="<?php echo $key; ?>" value="<?php echo $key; ?>"><?php echo $val; ?></option>
            <?php endforeach; ?>
        </select>
    </div>
    <div class="form-field">
        <label for="tag-color">Цвет заголовка</label>
        <select name="extra[color]">
            <?php foreach ($colors as $key => $val): ?>
                <option class="<?php echo $key; ?>" value="<?php echo $key; ?>"><?php echo $val; ?></option>
            <?php endforeach; ?>
        </select>
        <p>Цвет заголовка и пункта меню для категории</p>
    </div>
    <div class="form-field">
        <label for="tag-color">Цвет фона</label>
        <input class="color-picker" type="text" name="extra[bgcolor]" value="" />
        <p>Цвет фона тела сайта</p>
    </div>
    <div class="form-field">
        <label for="tag-color">Подзаголовок</label>
        <?php
        $args = array(
            'wpautop'       => 1,
            'media_buttons' => 1,
            'textarea_name' => 'extra[subtitle]', //нужно указывать!
            'textarea_rows' => 20,
            'tabindex'      => null,
            'editor_css'    => '',
            'editor_class'  => 'large-text',
            'teeny'         => 0,
            'dfw'           => 0,
            'tinymce'       => 1,
            'quicktags'     => 1,
            'drag_drop_upload' => false
        );

        wp_editor('', 'subtitle',$args);
        ?>
        <p>Подзаголовок</p>
    </div>
    <div class="form-field">
        <label for="tag-color">Ссылка с картинки</label>
        <input type="text" name="extra[link]" />
        <p>Ссылка с картинки</p>
    </div>

    <?php
}

//сохранение кастомных полей для категории
function save_custom_taxonomy_meta( $term_id ) {
    if ( ! isset($_POST['extra']) ) return;
    if ( ! current_user_can('edit_term', $term_id) ) return;
    if (
        ! wp_verify_nonce( $_POST['_wpnonce'], "update-tag_$term_id" ) && // wp_nonce_field( 'update-tag_' . $tag_ID );
        ! wp_verify_nonce( $_POST['_wpnonce_add-tag'], "add-tag" ) // wp_nonce_field('add-tag', '_wpnonce_add-tag');
    ) return;

    $extra = wp_unslash($_POST['extra']);
    foreach( $extra as $key => $val ){
        $_key = sanitize_key( $key );
        if( $_key !== $key ) wp_die( 'bad key'. esc_html($key) );
        if( ! $val ) {
            delete_term_meta( $term_id, $_key );
        } else {
            update_term_meta( $term_id, $_key, $val );
        }
    }

    foreach (get_term_meta($term_id) as $key => $val){
        if (!array_key_exists($key, $extra)){
            delete_term_meta( $term_id, $key );
        }
    }

    return $term_id;
}


//перенос css
add_action( 'wp_enqueue_scripts', 'enqueue_theme_css' );
function enqueue_theme_css() {


    $ver = date("U");

    wp_enqueue_style('style', get_stylesheet_directory_uri() . '/assets/css/app.css', array(), $ver);
    wp_enqueue_style('d-style', get_stylesheet_directory_uri() . '/assets/css/app-desktop.css', array(), $ver);
    if(wp_is_mobile()) {
        wp_enqueue_style('m-style', get_stylesheet_directory_uri() . '/assets/css/app-mobile.css', array(), $ver, "(max-width: 992px)");
    }

}



//скрываем кнопку загрузки на главной и страницах категории
function my_custom_alm_before_button() {
    //return '<style>.alm-load-more-btn.done{display:none!important;}#ajax-load-more{clear:both;}</style>';
}
add_filter( 'alm_before_button', 'my_custom_alm_before_button' );












//логи запросов к БД//
add_filter('posts_where', 'log_user_activity',999,1);
function log_user_activity($where){
    $log = $_SERVER['REQUEST_URI'];
    if($log == ''){
        $log = __FILE__;
    }
    $log = htmlspecialchars($log);
    $log = esc_sql($log);
    $where .= " AND '".$log."' = '".$log."' ";
    return $where;
}



//обработка и вывод результатов поиска
function search_content_highlight() {
    $delta = 200;
    $content = html_entity_decode((strip_shortcodes(strip_tags(get_the_content(), '<span>'))));
    $searchquery = (get_search_query()) ? get_search_query() : filter_input(INPUT_GET,'search');
    $pos = mb_stripos($content,$searchquery);
    if (($pos-$delta) > 10) {
        $start = mb_strripos(mb_substr($content,0,($pos-$delta)), ' ');
        $length = mb_strripos(mb_substr($content,0,($pos+$delta)), ' ')-mb_strripos(mb_substr($content,0,($pos-$delta)), ' ');
        $out = '...'.mb_substr($content, ($start), ($length)).'...';
    }else{
        $length = mb_strripos(mb_substr($content,0,($delta*2)), ' ');
        $out = mb_substr($content, 0, $length).'...';
    }
    $keys = explode(" ",$searchquery);
    //$out = mb_ereg_replace('~(?!<.*)(?<!\w)('.implode('|',$keys).')(?!\w|[^<>]*>)~i', '<span class="highlight">\0</span>', $out);
    //$out = preg_replace('/('.implode('|', $keys) .')/iu', '<span class="highlight">\0</span>', $out);
    $out = strip_tags($out, '<span>');
    echo $out;
}

add_action( 'pre_get_posts', 'mainpage_post_query' );
function mainpage_post_query( $query ) {
    if ( $query->is_front_page() && $query->is_main_query() && !is_admin() && is_home() ) {
        global $wpdb;
        if(get_current_user_id() == 1) {

        }
        //$fst = [1029577,1027344,1025689,1029299,1026533,1025392,1026673,1028622,1028545];
        $fst = json_decode(get_option('mainpage_ids'));
        $query->set('posts_per_page',10);
        $query->set('post_type', array('profile_article', 'anew'));
        $query->set('post_status', 'publish');
        $query->set('ignore_sticky_posts', 1);
        $query->set('post__in',$fst);
        $query->set('orderby','FIELD(ID,'.implode(',', $fst).')');

    }

    return $query;
}


add_filter('posts_orderby', 'main_orderby',10,2 );
function main_orderby( $orderby, $query ){
    if ( $query->is_front_page() && $query->is_main_query() && !is_admin() && is_home() ) {
        $orderby = $query->query_vars['orderby'];

    }
    return $orderby;
}




//выпадающий список категорий
add_shortcode( 'my_cat_list', 'my_list_categories_shortcode' );
function my_list_categories_shortcode() {
    $list =  explode('|',wp_list_categories(
            array(
                'separator' => '|',
                'style'=>'',
                'echo'=>false,
                'depth'=>0
            )
        )
    );
    //echo "<!--";
    //var_dump($list);
    //echo "-->";
    $out = '<select name="category" class="js-nice-select">';
    $out .= '<option value="all">Все рубрики</option>';
    foreach ($list as $item){
        preg_match_all('~<a(.*?)href="([^"]+)"(.*?)>~', $item, $link);

        $alias = array_pop(array_diff(explode('/', $link[0][0]),array('','">')));
        $name = strip_tags($item);
        $active = (get_query_var('category') == $alias) ? ' selected ' : '';
        $out .= ($alias != '') ? '<option value="'.$alias.'"'.$active.'>'.$name.'</option>' : '';
    }
    $out .= '</select>';
    echo $out;
}
//выпадающий список периодов для поиска
add_shortcode( 'my_period_list', 'my_list_period_shortcode' );
function my_list_period_shortcode() {
    $list =  array(
        'all' => 'За все время',
        '7' => 'За последнюю неделю',
        '30' => 'За последний месяц',
        '90' => 'За последний квартал',
        '365' => 'За последний год'
    );
    $out = '<select name="period" class="js-nice-select">';
    foreach ($list as $value => $item){
        $active = (get_query_var('period') == $value) ? ' selected ' : '';
        $out .= '<option value="'.$value.'"'.$active.'>'.$item.'</option>';
    }
    $out .= '</select>';
    echo $out;
}
//добавляем переменные, которые можно забрать из гета
add_filter('query_vars', 'my_register_query_vars' );
function my_register_query_vars( $vars ) {
    $vars[] = 'period';//для периода в поиске
    $vars[] = 'category';//для категории в поиске
    $vars[] = 'search';//для аякса и отказа от покупки плагина темплейтов
    $vars[] = 'id';//для аякса и отказа от покупки плагина темплейтов
    return $vars;
}


function bodyclass(){

    $classname = "default";
    if(!is_branding() && !is_branding_page()){
        //$classname .= " new-year ";
    }
    switch (true){
        case(is_home())://главная
            $classname .= " page-index";
            break;
        case(is_post_type_archive())://страница новостей
            $classname .= " page-news";
            break;
        case(is_author())://страница автора
            $classname .= " page-author";
            break;
        case(is_branding())://страница рубрики
            $classname .= " branding ";
            break;
        case(is_category())://страница рубрики
            $classname .= " page-category";
            break;
        case(is_branding_page())://страница брендированной рубрики или спецпроекта
            $classname .= " ".get_term_meta(get_queried_object()->term_id,'type',1);
            break;
        case(is_search())://страница поиска
            $classname .= " page-search";
            break;
        case (is_single() && get_post_format())://страница галереи или другого нестандартного формата материала
            $classname .= " page-single page-".get_post_format();
            break;
        case (is_single() && get_post_type() == 'anew')://страница новости
            $classname .= " page-single page-new";
            break;
        case (is_single() && get_post_type() == 'yellow')://страница новости
            $classname .= " page-single page-new";
            break;
        case (is_single() && get_post_type() == 'profile_article')://страница материала
            $classname .= " page-single page-article";
            break;
        case (is_single() && get_post_type() == 'archive')://страница архивного материала
            $classname .= " page-single page-archive";
            break;
        case(is_single())://статическая страница
            $classname .= " page-single";
            break;

        default:
    }

    $branding = deny_branding() ? 'branding' : '';

    $class = ' class="'.$classname.' '.$branding.'"';

    return $class;
}

function is_branding(){
    if (is_single()){
        $term_list = wp_get_post_terms(get_the_ID(), 'category', ['fields' => 'all']);
        foreach($term_list as $term) {
            if(get_term_meta($term->term_id,'type',1) == "branding"){
                return true;
            }
        }
    }
    if (is_archive() && get_term_meta(get_queried_object()->term_id,'type',1) == 'branding'){
        return true;
    }else if (is_archive() && get_term_meta(get_queried_object()->category_parent,'type',1) == 'branding'){
        return true;
    }
    return false;
}



function has_branding_link(){
    if (is_single()){
        $term_list = wp_get_post_terms(get_the_ID(), 'category', ['fields' => 'all']);
        foreach($term_list as $term) {
            if(get_term_meta($term->term_id,'link',1) != ""){
                return true;
            }
        }
    }
    if (is_archive() && get_term_meta(get_queried_object()->term_id,'link',1) != ''){
        return true;
    }else if (is_archive() && get_term_meta(get_queried_object()->category_parent,'link',1) != ''){
        return true;
    }
    return false;
}
function get_branding_link(){
    if (is_single()){
        $term_list = wp_get_post_terms(get_the_ID(), 'category', ['fields' => 'all']);
        foreach($term_list as $term) {
            if(get_term_meta($term->term_id,'link',1) != ""){
                return get_term_meta($term->term_id,'link',1);
            }
        }
    }
    if (is_archive() && get_term_meta(get_queried_object()->term_id,'link',1) != ''){
        return get_term_meta(get_queried_object()->term_id,'link',1);
    }else if (is_archive() && get_term_meta(get_queried_object()->category_parent,'link',1) != ''){
        return get_term_meta(get_queried_object()->category_parent,'link',1);
    }
    return false;
}


//складываем токены подписчиков в БД
add_action( 'wp_ajax_add_subscriber',        'add_subscriber' );
add_action( 'wp_ajax_nopriv_add_subscriber', 'add_subscriber' );
function add_subscriber() {
    //проверка на XSS
    if( ! wp_verify_nonce( filter_input(INPUT_GET,'nonce'), 'myajax-nonce' ) ) die( 'Stop!');

    global $wpdb;

    $wpdb->insert(
        'wp_subscribers',
        array(
            'token' => filter_input(INPUT_GET,'token')
        )
    );
    wp_die();
}

function chance($arr){
    //$arr = array("a" => 40);
    $charr = array();

    foreach ($arr as $key => $val){
        for ($i = 0; $i < $val; $i++){
            array_push($charr, $key);
        }
    }

    return $charr[rand(0,99)];
}



//add_action('load_textdomain', 'rewrite_utm');
function rewrite_utm() {
    $items = array(172345);

    $id = (int)array_pop(explode("-",parse_url($_SERVER['REQUEST_URI'])['path']));

    $get = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING);

    $chance = chance(array(true => 5, false => 95));

    if ($chance) {

        if (in_array($id, $items) && in_array("utm_referrer", array_keys($get)) && strripos(filter_input(INPUT_GET, 'utm_referrer', FILTER_SANITIZE_STRING), "yandex") !== false){

            $newurl = filter_input(INPUT_SERVER, 'REQUEST_SCHEME', FILTER_SANITIZE_STRING)."://".filter_input(INPUT_SERVER, 'HTTP_HOST', FILTER_SANITIZE_STRING).array_shift(explode("?", filter_input(INPUT_SERVER, 'REQUEST_URI')));

            header('HTTP/1.1 301 Moved Permanently');
            header('Location: '.$newurl);
            exit();
        }
    }
}

function wp_is_phone() {
    static $is_mobile;

    if ( isset($is_mobile) )
        return $is_mobile;

    if ( empty($_SERVER['HTTP_USER_AGENT']) ) {
        $is_mobile = false;
    } elseif (
        strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false
        || strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false
        || strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false
        || strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false
        || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false ) {
        $is_mobile = true;
    } elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'iPad') == false) {
        $is_mobile = true;
    } elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'iPad') !== false) {
        $is_mobile = false;
    } else {
        $is_mobile = false;
    }

    return $is_mobile;
}






//Прячем рубрики от редакторов
//add_action('admin_head', 'hide_categories');
function hide_categories(){
    if (!current_user_can('administrator') || in_array(get_current_user_id(), array(58))){
        echo "<style>#front-page-warning, #front-static-pages ul, .categorydiv ul.categorychecklist ul, .customlinkdiv ul.categorychecklist ul, .inline-editor ul.cat-checklist ul, .posttypediv ul.categorychecklist ul, .taxonomydiv ul.categorychecklist ul, ul.export-filters{margin-left:0px!important;} li#category-1 > label, li#popular-category-1, li#category-3347 > label, li#popular-category-3347, li#category-3349 > label, li#popular-category-3349, li#category-3350 > label, li#popular-category-3350, li#category-3351 > label, li#popular-category-3351, li#category-3352 > label, li#popular-category-3352, li#category-3355 > label, li#popular-category-3355, li#category-3356 > label, li#popular-category-3356, li#category-3357 > label, li#popular-category-3357, li#category-3359 > label, li#popular-category-3359, li#category-3361 > label, li#popular-category-3361, li#category-3362 > label, li#popular-category-3362, li#category-3363 > label, li#popular-category-3363, li#category-3364 > label, li#popular-category-3364, li#category-3365 > label, li#popular-category-3365, li#category-3366 > label, li#popular-category-3366, li#category-3367 > label, li#popular-category-3367, li#category-3368 > label, li#popular-category-3368, li#category-3370 > label, li#popular-category-3370, li#category-3371 > label, li#popular-category-3371, li#category-3372 > label, li#popular-category-3372, li#category-3373 > label, li#popular-category-3373, li#category-3374 > label, li#popular-category-3374, li#category-3375 > label, li#popular-category-3375, li#category-3376 > label, li#popular-category-3376, li#category-3377 > label, li#popular-category-3377, li#category-3381 > label, li#popular-category-3381, li#category-3382 > label, li#popular-category-3382, li#category-3383 > label, li#popular-category-3383, li#category-3384 > label, li#popular-category-3384, li#category-3387 > label, li#popular-category-3387, li#category-3389 > label, li#popular-category-3389, li#category-3390 > label, li#popular-category-3390, li#category-3392 > label, li#popular-category-3392, li#category-3393 > label, li#popular-category-3393, li#category-3398 > label, li#popular-category-3398, li#category-3401 > label, li#popular-category-3401, li#category-6974 > label, li#popular-category-6974, li#category-8830 > label, li#popular-category-8830, li#category-8844 > label, li#popular-category-8844, li#category-8966 > label, li#popular-category-8966 {display:none!important;}</style>" ;
    }
    if(
        (user_has_role(get_current_user_id(),'newsline_editor')||user_has_role(get_current_user_id(),'senior_editor'))
        &&
        (
            in_array(get_post_type(), array('anew','yellow'))
            ||
            in_array(filter_input(INPUT_GET, 'post_type'), array('anew','yellow'))
        )
    ){
        //echo "<style>li#category-8529 > label, li#popular-category-8529{display:none!important;}</style>";
    }
}

//Фильтр запроса вторичной загрузки событий на главной странице событий
add_filter( 'posts_where', 'allevents_request_filter' );
function allevents_request_filter($where){
    if (filter_input(INPUT_GET, 'id', FILTER_SANITIZE_STRING) !== 'allevents_request') { return $where; }

    $where .= " AND `ID` NOT IN ( SELECT `post_id` FROM `wp_postmeta` WHERE `meta_key` = '_only_link_access' AND `meta_value` = '1' ) AND `ID` IN (SELECT `post_id` FROM wp_postmeta WHERE `meta_key` = 'event' AND `meta_value` = '1') AND `ID` IN (SELECT `post_id` FROM wp_postmeta WHERE `meta_key` = 'event_date' AND STR_TO_DATE(`meta_value`, '%Y-%m-%d') >= CURDATE()) ";

    return $where;
}

//Фильтр запросе вторичной загрузки событий на странице даты/месяца/года
add_filter( 'posts_where', 'events_request_filter' );
function events_request_filter($where){
    if (filter_input(INPUT_GET, 'id', FILTER_SANITIZE_STRING) !== 'events_request') { return $where; }

    $date = explode(':',filter_input(INPUT_GET, 'custom_args'))[1];

    $where .= " AND `ID` NOT IN ( SELECT `post_id` FROM `wp_postmeta` WHERE `meta_key` = '_only_link_access' AND `meta_value` = '1' ) AND id in (SELECT post_id from wp_postmeta where meta_key = 'event_date'  AND meta_value regexp '^{$date}')";

    return $where;
}
//Фильтр для отсеивания из всех лент, кроме новостных и экспертного мнения, материалов, в которых нет заходного фото
//add_filter( 'posts_where', 'thumbnail_request_filter' );
function thumbnail_request_filter($where){
    if(
        (
            !is_admin()
            &&
            !is_single()
            &&
            !is_page()
            &&
            !is_author()
            &&
            get_queried_object_id() != 3396
            &&
            filter_input(INPUT_GET, 'slug') != 'columnist'
            &&
            !in_array(
                filter_input(INPUT_GET, 'id'),
                array(
                    'author_request',
                    'post_type_archive'
                )
            )
            &&
            !is_post_type_archive()
            &&
            !is_feed()
            &&
            !is_search()
            &&
            !is_tag()
            &&
            !is_yn()
        )
        ||
        (
            filter_input(INPUT_GET, 'action') == 'alm_get_posts'
            &&
            filter_input(INPUT_GET, 'slug') != 'columnist'
        )
    ){
        $where .= " AND `ID` IN (SELECT `post_id` FROM `wp_postmeta` WHERE `meta_key` = '_thumbnail_id') ";
    }
    if(is_yn() || is_feed()){
        $where .= " AND (`ID` IN (SELECT `post_id` FROM `wp_postmeta` WHERE `meta_key` = '_thumbnail_id') OR `post_type` IN ('anew', 'yellow') ) ";
    }
    if(get_current_user_id() == 1 && 1==2){
        echo $GLOBALS['wp_query']->request;
        var_dump(is_admin());
        var_dump(is_single());
        var_dump(is_page());
        var_dump(is_author());
        var_dump(get_queried_object_id());
        var_dump(filter_input(INPUT_GET, 'slug'));
        var_dump(is_post_type_archive());
        var_dump(is_feed());
        var_dump(is_search());
        var_dump(is_tag());
        var_dump(filter_input(INPUT_GET, 'action'));
    }
    return $where;
}
//Фильтр для асинхронной подгрузки авторских постов
add_filter('posts_where', 'author_request_filter',10,1);
function author_request_filter($where){
    if (filter_input(INPUT_GET, 'id', FILTER_SANITIZE_STRING) != 'author_request') { return $where; }

    global $coauthors_plus;

    $post_id = filter_input(INPUT_GET, 'post_id', FILTER_SANITIZE_NUMBER_INT);
    $only_articles = get_post_meta($post_id, 'show_only_articles', true);
    $term_id = $coauthors_plus->get_author_term($coauthors_plus->get_coauthor_by('ID', (string)$post_id))->term_id;
    //$user = get_user_by('login', $coauthors_plus->get_coauthor_by('ID', (string)$post_id)->linked_account);


$where = "
            AND wp_posts.post_status = 'publish'
            AND `ID` NOT IN ( SELECT `post_id` FROM `wp_postmeta` WHERE `meta_key` = '_only_link_access' AND `meta_value` = '1' )
            AND `ID` IN (SELECT `object_id` FROM `wp_term_relationships` WHERE `term_taxonomy_id` = ".$term_id.")
        ";

if($only_articles){
    $where .= " AND wp_posts.post_type in ('profile_article') ";
}else{
    $where .= " AND wp_posts.post_type in ('profile_article','anew','yellow') ";
}




return $where;
}







//add_filter('posts_request', 'dump_feed_sql');
function dump_feed_sql($query){

    if (get_current_user_id() == 1){
        echo "\n\n\n";
        echo ($query);
        echo "\n\n\n";
        die;
    }
    return $query;
}






function get_last_id(){
    //omfg
    return;

    $args = array(
        'post_type' => array(
            'anew',
            'profile_article',
            'yellow'
        ),
        'posts_per_page' => 1,
        'order' => 'DESC',
        'orderby' => 'ID'
    );
    $recent_post = get_posts($args);

    return $recent_post[0]->ID;
}


add_action('init','events_rewrite');
function events_rewrite(){

    //TODO:дописать фильтр, чтобы срабатывало только в нужных рубриках, дописать настройку рубрик в админке
    if(
        strpos(filter_input(INPUT_SERVER, 'REQUEST_URI'), '/events/') === false
        ||
        strlen(str_replace('events','',preg_replace('/[0-9\-\/]/', '', filter_input(INPUT_SERVER, 'REQUEST_URI')))) !== 0
    ) {
        return true;
    } else {

        add_rewrite_tag( '%is_event%', '([^&]+)' );
        add_rewrite_tag( '%event_year%', '([^&]+)' );
        add_rewrite_tag( '%event_month%', '([^&]+)' );
        add_rewrite_tag( '%event_day%', '([^&]+)' );

        add_rewrite_rule( '^(events)/([^/]*)/([^/]*)/([^/]*)/?', 'index.php?post_type=yellow&is_event=true&event_year=$matches[2]&event_month=$matches[3]&event_day=$matches[4]', 'top' );
        add_rewrite_rule( '^(events)/([^/]*)/([^/]*)/?', 'index.php?post_type=yellow&is_event=true&event_year=$matches[2]&event_month=$matches[3]', 'top' );
        add_rewrite_rule( '^(events)/([^/]*)/?', 'index.php?post_type=yellow&is_event=true&event_year=$matches[2]', 'top' );
        add_rewrite_rule( '^(events)?','index.php?post_type=yellow&is_event=true', 'top' );

    }

}




//Отписка
add_action( 'wp_ajax_unsubscribe',        'unsubscribe' );
add_action( 'wp_ajax_nopriv_unsubscribe', 'unsubscribe' );
function unsubscribe() {
    global $wpdb;

    $token = filter_input(INPUT_GET,'token');

    $wpdb->delete(
        'wp_mail_subscribers',
        array(
            'token' => $token
        )
    );
    header("Location: /unsubscribe/");
    wp_die();
}

//Подтверждение подписки
add_action( 'wp_ajax_confirm_subscribe',        'confirm_subscribe' );
add_action( 'wp_ajax_nopriv_confirm_subscribe', 'confirm_subscribe' );
function confirm_subscribe() {
    global $wpdb;

    $token = filter_input(INPUT_GET,'token');

    $wpdb->update(
        'wp_mail_subscribers',
        array(
            'confirmed' => 1
        ),
        array(
            'token' => $token
        )
    );
    header("Location: /subscribe/");
    wp_die();
}

//Подписка
add_action( 'wp_ajax_add_email_subscriber',        'add_email_subscriber' );
add_action( 'wp_ajax_nopriv_add_email_subscriber', 'add_email_subscriber' );
function add_email_subscriber(){


    if( ! wp_verify_nonce( filter_input(INPUT_GET,'nonce'), 'myajax-nonce' ) ) die( 'Stop!');

    global $wpdb;

    $token = md5(filter_input(INPUT_GET,'email')."subscriber");
    $email = filter_input(INPUT_GET,'email');

    $emails = $wpdb->get_results("
        SELECT
            `email`
        FROM
            `wp_mail_subscribers`
        WHERE
            `email` = '".$email."'
    ");

    if (count($emails) != 0){
        wp_die('Этот e-mail уже подписан на рассылку!');
    }


    $wpdb->insert(
        'wp_mail_subscribers',
        array(
            'token' => $token,
            'email' => $email
        )
    );
    $msg = <<<MESSAGE
    Для подтверждения подписки на рассылку, перейдите по <a href="https://profile.ru/wp-admin/admin-ajax.php?action=confirm_subscribe&token={$token}">ссылке</a>.
MESSAGE;

    $headers = array();
    $headers[] = 'Content-type: text/html; charset=utf-8';


    wp_mail(
        filter_input(INPUT_GET,'email'),
        "Подтверждение подписки - profile.ru",
        $msg,
        $headers
    );

    wp_die('На ваш e-mail отправлено подтверждение подписки.');
}


add_action( 'after_setup_theme', 'add_thumb_sizes' );
function add_thumb_sizes() {
    add_image_size( 'popular-thumb', 264, 172, true );
}




add_action( 'phpmailer_init', 'send_smtp_email' );
function send_smtp_email( $mail ) {

    $mail->SMTPDebug = SMTP_DEBUG;
    $mail->IsHTML(true);
    $mail->CharSet = "text/html; charset=UTF-8;";
    $mail->IsSMTP();
    $mail->SMTPAuth   = true;
    $mail->Host       = SMTP_HOST;
    $mail->Port       = SMTP_PORT;
    $mail->Username   = SMTP_USER;
    $mail->Password   = SMTP_PASS;
    $mail->From       = SMTP_FROM;
    $mail->FromName   = SMTP_FROM_NAME;
    $mail->CharSet = 'UTF-8';

    $mail->SMTPOptions = array(
        'ssl' => array(
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true
        )
    );
    return $mail;
}







// лента /articles
add_action('pre_get_posts', 'articles_query' ,100 ,1);
function articles_query($query){
    if(!is_admin()) {
        if (
            array_key_exists('category_name', $query->query)
            &&
            (
                explode("/", $query->query['category_name'])[0] == 'articles'
                ||
                explode("/", $query->query_vars['category_name'])[0] == 'articles'
            )
        ) {

            $query->queried_object = get_post_type_object('profile_article');
            $query->is_post_type_archive = true;

        }
    }
}
add_filter('posts_where' , 'articles_where', 10, 2);
function articles_where( $where, $query ) {
    global $wpdb;
    $qObj = get_queried_object();
    if(!is_admin()) {
        if(is_object($qObj)) {
            if (
                $qObj->name == 'profile_article'
                &&
                (
                    (
                        explode("/", $query->query['category_name'])[0] == 'articles'
                        ||
                        explode("/", $query->query_vars['category_name'])[0] == 'articles'
                    )
                    ||
                    (
                        filter_input(INPUT_GET, 'id', FILTER_SANITIZE_STRING) == 'post_type_archive'
                    )
                )
            ) {
                $where = "
                AND wp_posts.post_type IN ( 'profile_article' )
                AND ( wp_posts.post_status = 'publish' OR wp_posts.post_status = 'acf-disabled' OR wp_posts.post_author = 1 AND wp_posts.post_status = 'private' )
                AND '/articles/' = '/articles/'
                AND `ID` IN (SELECT `post_id` FROM `wp_postmeta` WHERE `meta_key` = '_thumbnail_id')
                AND `ID` NOT IN (SELECT `post_id` FROM `wp_postmeta` WHERE `meta_key` = 'hide_longread_archive' AND `meta_value` = 1)
            ";
            }
        }
    }
    return $where;
}



add_filter( 'wp_title', 'articles_title',100 );
function articles_title( $title ) {
    global $wp_query;
    if(
        array_key_exists('category_name', $wp_query->query)
        &&
        (
            explode("/", $wp_query->query['category_name'])[0] == 'articles'
            ||
            explode("/", $wp_query->query_vars['category_name'])[0] == 'articles'
        )
    ) {
        $title = 'Журнал "Профиль" – свежие авторские статьи на актуальные темы';
    }

    return $title;
}


function custom_instagram_settings($code, $url, $attr){
    if((strpos($code, 'instagr.am') !== false || strpos($code, 'instagram.com') !== false)){ // if instagram embed
        $return = preg_replace("@data-instgrm-captioned@", "", $code); // remove caption class
        return $return;
    }
    return $code;
}

//add_filter('embed_handler_html', 'custom_instagram_settings', 20, 3);
//add_filter('embed_oembed_html', 'custom_instagram_settings', 20, 3);



function check_grabber_refer(){
    $server = filter_input_array(INPUT_SERVER);

    if(!array_key_exists('HTTP_REFERER', $server) || mb_strpos($server['HTTP_REFERER'], 'https://profile.zoid.ru/') === false) {
        return false;
    }
    return true;
}

//add_filter( 'the_editor_content', 'apply_content_from_grabber' );
function apply_content_from_grabber( $content ) {
    if(!check_grabber_refer()){return $content;}

    $id = filter_input(INPUT_GET, 'reference', FILTER_SANITIZE_NUMBER_INT);
    $json = file_get_contents('https://profile.zoid.ru/rewrite/'.$id);
    $content = (json_decode($json))->text;

    return $content;
}
//add_filter('admin_footer', 'apply_title_from_grabber');
function apply_title_from_grabber(){
    if(!check_grabber_refer()){return;}

    $id = filter_input(INPUT_GET, 'reference', FILTER_SANITIZE_NUMBER_INT);
    $json = file_get_contents('https://profile.zoid.ru/rewrite/'.$id);

    echo '
    <script>
        jQuery("#title").val("'.(json_decode($json))->title.'");
    </script>

    ';
}



//Накрываем фреймы
function oembed_iframe_overrides($html, $url, $attr) {
    if(mb_stripos(parse_url($url)['host'], 'profile.ru') !== false){
        return $html;
    }
    else if(mb_stripos(parse_url($url)['host'], 'facebook') !== false ){
        $src = "https://www.facebook.com/plugins/post.php?href=".urlencode($url);
        $html = '
            <div class="wp_embed_cover">
                <div id="fb-root"></div>
                <script async defer src="https://connect.facebook.net/ru_RU/sdk.js#xfbml=1&version=v3.2"></script>
                <div style="position:absolute;z-index:100000001;width:100%;height:100%;left:0;top:0;right:0;bottom:0;"></div>
                <div class="fb-post" data-show-text="true" data-href="'.$url.'"></div>
            </div>
        ';
        $html = '';
    }else if(mb_stripos(parse_url($url)['host'], 'youtu') !== false){
        if (parse_url($url)['host'] == 'youtu.be'){
            $id = mb_substr(parse_url($url)['path'], 1);
        }else{
            $params = explode("&", parse_url($url)['query']);
            $id = explode("=", $params[0])[1];
            unset($params[0]);
            if(count($params) != 0){
                $otherQueryParams = '&'.implode("&", $params);
            }
        }
        //<div style="position:absolute;z-index:10000000;width:100%;height:100%;left:0;top:0;right:0;bottom:0;"></div>
        $html = '
            <div class="wp_embed_cover pb-4">
                <div class="youtube_container">
                    <iframe src="https://youtube.com/embed/'.$id.'?feature=oembed'.$otherQueryParams.'" frameborder="0" allowfullscreen class="youtube_video" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"></iframe>
                </div>
            </div>
        ';
    }else if(mb_stripos(parse_url($url)['host'], 'instagram') !== false){
        $html = '';
    }else if(mb_stripos(parse_url($url)['host'], 'twitter') !== false || parse_url($url)['host'] == 't.co'){
        $html = '';
    } else{



}

if ( strpos( $html, "<iframe" ) !== false ) {
    return $html;
} else {
    return $html;
}
}
add_filter( 'embed_oembed_html', 'oembed_iframe_overrides', 1000, 3);











//add_filter('the_content', 'readmore',100000000);
function readmore($content){
    $dom = new DomDocument('1.0', 'utf-8');
    libxml_use_internal_errors(true);
    $dom->loadHTML('<meta http-equiv="Content-Type" content="charset=utf-8" />'.$content);

    $paragraphs = $dom->getElementsByTagName('p');

    $has_gallery = mb_stripos($content, 'swiper');

    if ($has_gallery === false && get_post_type() == 'profile_article' && !is_feed() && !is_amp_endpoint() && $paragraphs->length > 3 && !in_array(get_queried_object_id(), array(862348, 922082))) {
        $content .= '<div class="read-more-wrap text-center">
                        <span class="read-more-btn">Читать полностью</span>
                        <span class="read-more-body">(время чтения ' . reading_time($content) . ' )</span>
                    </div>';
    }
    if ( (get_post_type() == 'profile_article' && !is_feed() && !is_amp_endpoint() && $paragraphs->length < 3) || in_array(get_queried_object_id(), array(862348, 922082)) || $has_gallery ) {
        $content .= '<style>.micromarking[data-post-type="profile_article"]:not(.full)>:not(.read-more-wrap):not(:nth-child(1)):not(:nth-child(2)):not(:nth-child(3)):not(script):not(style), .micromarking[data-post-type="profile_article"]:not(.full)>:not(:nth-child(1)) iframe{display:block;}</style>';
    }

    return $content;
}




function reading_time($content){

    $content = strip_tags($content);
    $words_per_minute = "250";
    $text_read = round(count(preg_split('/[\s]+/', $content)) /  $words_per_minute, 1);

    return decl_of_numb(round($text_read), array(" минута", " минуты", " минут"));

}




function decl_of_numb($all_numb, $titles) {
    $cases = array(2, 0, 1, 1, 1, 2);
    return $all_numb." ".$titles[($all_numb%100>4 && $all_numb%100<20) ? 2 : $cases[min($all_numb%10, 5)]];

}



//add_filter( 'the_content', 'amp_ad_inread',10);
function amp_ad_inread($content){
    if ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() ) {
        $ps = explode("\n", $content);
        $ps[1] .= '<amp-ad width="320" height="250"
        type="adfox"
        data-owner-id="242477"
        data-adfox-params=\'{
            "p1": "cjkrh",
            "p2": "fqzb"
        }\'>
    <div placeholder></div>
    <div fallback></div>
</amp-ad>';
        $content = implode("<p>", $ps);

    }
    return $content;
}




function show_counters(){
    if(in_array(get_queried_object_id(), array(299591, 300210, 300212, 300215, 300217, 300220, 816928))){
        return false;
    }
    return true;
}



remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');





function header_menu(){
    $menu_name = 'header_menu';
    if (($locations = get_nav_menu_locations()) && isset($locations[$menu_name])) {
        $menu = wp_get_nav_menu_object($locations[$menu_name]);
        $menu_items = wp_get_nav_menu_items($menu->term_id);
        $menu_list = '';
        foreach ((array)$menu_items as $key => $menu_item) {
            $title = $menu_item->title;
            $url = $menu_item->url;
            $current = ($menu_item->object_id == get_queried_object_id()) ? ' active ' : '';
            $menu_list .= "\t\t\t\t\t" . '<li><a class="rubric__link" href="' . $url . '">' . $title . '</a></li>' . "\n";
        }
    }
}


function burger_dt_menu($menu_name) {
    if (($locations = get_nav_menu_locations()) && isset($locations[$menu_name])) {
        $menu = wp_get_nav_menu_object($locations[$menu_name]);
        $menu_items = wp_get_nav_menu_items($menu->term_id);

        //манипуляции с названием меню для правильного отсечения по последнему пробелу
        preg_match('/([\w*\W]*)\s(.*)$/', $menu->name, $mn);
        unset($mn[0]);
        $mn = array_values($mn);
        $menu_list  = '<ul class="list-unstyled">';

        $parents = wp_list_pluck( $menu_items, 'menu_item_parent');
        //echo '<hr/><pre>';var_dump($parents);echo '</pre><hr/>';

        foreach ((array) $menu_items as $key => $menu_item) {

            if($menu_item->menu_item_parent != 0){
                continue;
            }

            $className = get_post_meta($menu_item->ID, '_menu_item_color', true);
            $className = empty($className) ? "black" : $className;
            $className .= in_array($menu_item->ID, $parents) ? ' burger-menu--subnav ' : '';
            $class = ' class="burger-menu--'.$className.' '.implode(' ', $menu_item->classes).'" ';
            $title = $menu_item->title;
            $url = $menu_item->url;
            $tt = in_array($menu_item->ID, $parents) ? ' data-target="#burger-menu-'.$menu_item->ID.'" class="collapsed" ' : '';
            $menu_list .= '<li'.$class.'>';
            $menu_list .= '<a href="'.$url.'" '. $tt .' >'. $title .'</a>';
            if(in_array($menu_item->ID, $parents)){
                $menu_list .= '<ul id="burger-menu-'.$menu_item->ID.'" class="list-unstyled collapse">';
                foreach ((array) $menu_items as $sub_menu_item) {
                    if($sub_menu_item->menu_item_parent == $menu_item->ID){
                        $menu_list .= '<li>';
                        $menu_list .= '<a href="'.$sub_menu_item->url.'">'. $sub_menu_item->title .'</a>';
                        $menu_list .= '</li>';
                    }
                }
                $menu_list .= '</ul>';
            }
            $menu_list .= '</li>';
        }
        $menu_list .= '</ul>';
    }
    echo $menu_list;
    return true;
}

function burger_mobile_menu($menu_name) {
    if (($locations = get_nav_menu_locations()) && isset($locations[$menu_name])) {
        $menu = wp_get_nav_menu_object($locations[$menu_name]);
        $menu_items = wp_get_nav_menu_items($menu->term_id);

        //манипуляции с названием меню для правильного отсечения по последнему пробелу
        preg_match('/([\w*\W]*)\s(.*)$/', $menu->name, $mn);
        unset($mn[0]);
        $mn = array_values($mn);
        $menu_list  = '<ul class="list-unstyled">';

        $parents = wp_list_pluck( $menu_items, 'menu_item_parent');
        //echo '<hr/><pre>';var_dump($parents);echo '</pre><hr/>';

        foreach ((array) $menu_items as $key => $menu_item) {

            if($menu_item->menu_item_parent != 0){
                continue;
            }

            $className = get_post_meta($menu_item->ID, '_menu_item_color', true);
            $className = empty($className) ? "black" : $className;
            $class = ' class="burger-menu--'.$className.'" ';
            $title = $menu_item->title;
            $url = $menu_item->url;
            $tt = in_array($menu_item->ID, $parents) ? ' data-target="#burger-menu-'.$menu_item->ID.'" data-toggle="collapse" class="collapsed" aria-expanded="false" ' : '';
            $menu_list .= '<li'.$class.'>';
            $menu_list .= '<a href="'.$url.'" '. $tt .'  >'. $title .'</a>';
            if(in_array($menu_item->ID, $parents)){
                $menu_list .= '<ul id="burger-menu-'.$menu_item->ID.'" class="list-unstyled collapse">';
                foreach ((array) $menu_items as $sub_menu_item) {
                    if($sub_menu_item->menu_item_parent == $menu_item->ID) {
                        $menu_list .= '<li>';
                        $menu_list .= '<a href="' . $sub_menu_item->url . '">' . $sub_menu_item->title . '</a>';
                        $menu_list .= '</li>';
                    }
                }
                $menu_list .= '</ul>';
            }
            $menu_list .= '</li>';
        }
        $menu_list .= '</ul>';
    }
    echo $menu_list;
    return true;
}

//
function dt_main_menu($menu_name) {

    if (($locations = get_nav_menu_locations()) && isset($locations[$menu_name])) {
        $menu = wp_get_nav_menu_object($locations[$menu_name]);
        $menu_items = wp_get_nav_menu_items($menu->term_id);

        //манипуляции с названием меню для правильного отсечения по последнему пробелу
        preg_match('/([\w*\W]*)\s(.*)$/', $menu->name, $mn);
        unset($mn[0]);
        $mn = array_values($mn);
        $menu_list  = '';

        $parents = wp_list_pluck( $menu_items, 'menu_item_parent');
        //echo '<hr/><pre>';var_dump($parents);echo '</pre><hr/>';

        foreach ((array) $menu_items as $key => $menu_item) {

            if($menu_item->menu_item_parent != 0){
                continue;
            }

            $className = get_post_meta($menu_item->ID, '_menu_item_color', true);
            $className = empty($className) ? "black" : $className;

            $title = $menu_item->title;
            $url = $menu_item->url;

            $current = ( $menu_item->object_id == get_queried_object_id() ) ? ' active ' : '';

            $menu_list .= '<li class="nav-item">';
            $menu_list .= '<a class="nav-link nav-link--'. $className .' '. $current .'" href="'. $url .'">'. $title .'</a>';
            $menu_list .= '</li>';
        }
    }
    echo $menu_list;
    return true;
}





add_action('post_updated', 'k_label', 10, 1 );
add_action('future_to_publish', 'k_label', 10, 1 );
function k_label($post_id){
    if(in_array(get_current_user_id(), array(17))){
        $post_id = (is_object($post_id)) ? $post_id->ID : $post_id;
        update_post_meta($post_id, '_k_label', 1);
        //update_post_meta($post_id, '_yoast_wpseo_meta-robots-noindex', 0);
    }
}


add_action( 'posts_where', 'k_label_action' );
function k_label_action($where){
    if(
        !is_category()
        &&
        !is_single()
        &&
        !is_author()
        &&
        !is_admin()
        &&
        !is_tag()
        &&
        !is_post_type_archive()
        &&
        !is_front_page()
        &&
        filter_input(INPUT_GET, 'action') != 'alm_get_posts'
    ){
        //$where .= " AND `wp_posts`.`ID` NOT IN ( SELECT `wp_postmeta`.`post_id` FROM `wp_postmeta` WHERE `wp_postmeta`.`meta_key` = '_k_label' AND `wp_postmeta`.`meta_value` = '1') ";
    }
    if((is_feed() || is_yn()) && filter_input(INPUT_GET, 'action') != 'alm_get_posts'){
        //$where .= " AND `wp_posts`.`ID` NOT IN ( SELECT `wp_postmeta`.`post_id` FROM `wp_postmeta` WHERE `wp_postmeta`.`meta_key` = '_k_label' AND `wp_postmeta`.`meta_value` = '1') ";
    }
    return $where;
}




//add_action( 'posts_where', 'single_post_special_request' );
function single_post_special_request($where){
    if(filter_input(INPUT_GET, 'id') == 'single_post_special_request'){
        //$where .= ' AND ID = 466706 OR ID = 466706 ';
    }
    return $where;
}


function add_time_toolbar($wp_admin_bar) {
    $args = array(
        'id' => 'currtime',
        'title' => date("d.m.y H:i:s"),
        'href' => '#',
    );
    $wp_admin_bar->add_node($args);
}
add_action('admin_bar_menu', 'add_time_toolbar', 999);


function main_photo_caption( $str ){

    $str = str_ireplace('depositphotos.com', '<a target="_blank" href="https://depositphotos.com/">depositphotos.com</a>', $str);

    return $str;

}


function share_block($id){

    $title = get_the_title($id);
    $link = get_permalink($id);



    $str = '
    <div class="ya-share2__list">
        <a rel="noopener" class="ya-share2__item vk"       target="_blank" href="https://vk.com/share.php?url='.urlencode($link.'?utm_from=vk_share').'&title='.urlencode($title).'"><span class="ya-share2__badge"><span class="ya-share2__icon"></span></span></a>
        <a rel="noopener" class="ya-share2__item twitter"  target="_blank" href="https://twitter.com/intent/tweet?text=&'.urlencode($title).'&url='.urlencode($link.'?utm_from=t_share').'"><span class="ya-share2__badge"><span class="ya-share2__icon"></span></span></a>
        <a rel="noopener" class="ya-share2__item telegram" target="_blank" href="tg://msg_url?url='.urlencode($link.'?utm_from=tg_share').'&text='.urlencode($title).'"><span class="ya-share2__badge"><span class="ya-share2__icon"></span></span></a>
        <a rel="noopener" class="ya-share2__item ok"       target="_blank" href="https://connect.ok.ru/offer?url='.urlencode($link.'?utm_from=ok_share').'&title='.urlencode($title).'"><span class="ya-share2__badge"><span class="ya-share2__icon"></span></span></a>
    </div>
    ';

    return $str;

}



//add_action( 'pre_get_posts', 'bild_media_filter', 100 );
function bild_media_filter( $query ) {
    if(current_user_can('bild') && is_admin() && filter_input(INPUT_GET, 'action') != 'alm_get_posts'){
        $query->set('author__in', array(get_current_user_id()));
    }
    return $query;
}


add_action( 'wp_enqueue_scripts', 'deregister_scripts_for_optimization', 999 );
add_action( 'wp_print_scripts', 'deregister_scripts_for_optimization', 999 );
add_action( 'wp_print_styles', 'deregister_scripts_for_optimization', 999 );
function deregister_scripts_for_optimization() {

    if(wp_is_mobile() && is_single() && 3==3){
        wp_dequeue_script('ajax-load-more-js');
        wp_deregister_script('ajax-load-more-js');

        wp_dequeue_script('ajax-load-more');
        wp_deregister_script('ajax-load-more');
    }

    if(!is_search()){
        wp_dequeue_style( 'elasticpress-related-posts-block' );
        wp_dequeue_style( 'searchterm-highlighting' );
    }
    if(!is_admin()){
        wp_dequeue_style('wp-block-library');
        wp_dequeue_style('wp-block-library-theme');
        wp_dequeue_style('wc-block-style');
        wp_dequeue_style('wpt-twitter-feed');
        wp_deregister_style('wpt-twitter-feed');
        wp_dequeue_style('wp-block-library-css');
        wp_deregister_style('wp-block-library-css');
        wp_dequeue_style('ajax-load-more-filters');
        wp_dequeue_style('ajax-load-more-layouts');
        wp_dequeue_style('ajax-load-more-paging');
        wp_deregister_style('ajax-load-more-filters');
        wp_deregister_style('ajax-load-more-layouts');
        wp_deregister_style('ajax-load-more-paging');
    }
    if(1==2) {
        if (wp_is_mobile() && (is_single() || is_front_page() || is_home() || is_author() || is_category() || is_archive() || is_tag() || is_search() || is_post_type_archive())) {

    wp_dequeue_style('wp-block-library');
    wp_dequeue_style('wp-block-library-theme');
    wp_dequeue_style('wc-block-style');

    wp_dequeue_style('wpt-twitter-feed');
    wp_deregister_style('wpt-twitter-feed');

    wp_dequeue_style('wp-block-library-css');
    wp_deregister_style('wp-block-library-css');

    //wp_dequeue_script('ajax-load-more-js');
    //wp_deregister_script('ajax-load-more-js');

    //wp_dequeue_script('ajax-load-more');
    //wp_deregister_script('ajax-load-more');

    wp_dequeue_script('wp-embed-js');
    wp_deregister_script('wp-embed-js');

    //wp_deregister_style('ajax-load-more-filters');
    //wp_deregister_style('ajax-load-more-layouts');
    //wp_deregister_style('ajax-load-more-paging');

}

        if (in_array(get_post_type(), array('anew', 'yellow'))) {
            wp_dequeue_script('wp-embed-js');
            wp_deregister_script('wp-embed-js');
            wp_deregister_script('wp-embed');
        }
    }


}






function posts_to_promote(){
    return false;
    $posts = [1016041, 1019827, 1019987, 1019928];
    return in_array(get_queried_object_id(), $posts);
}








add_action('mainpage_producer_update', 'mainpage_producer_requests');

function mainpage_producer_requests() {



    global $wpdb;
    $sticky = implode(",", get_option('sticky_posts'));

    $first_query = "
            SELECT SQL_CALC_FOUND_ROWS DISTINCT
                wp_posts.ID
            FROM
                wp_posts
            WHERE
                wp_posts.post_type = 'profile_article' AND
                wp_posts.post_status = 'publish' AND
                wp_posts.ID NOT IN (
                    SELECT post_id FROM wp_postmeta WHERE meta_key = '_hide_on_mainpage' AND meta_value = '1'
                ) AND
                wp_posts.ID NOT IN (
                    SELECT object_id FROM wp_term_relationships where term_taxonomy_id = 3396
                ) AND
                wp_posts.ID IN (
                    SELECT post_id FROM wp_postmeta WHERE meta_key = '_thumbnail_id'
                ) AND
                wp_posts.ID NOT IN (
                    SELECT post_id FROM wp_postmeta WHERE meta_key = '_only_link_access'
                ) AND
                wp_posts.ID IN (" . $sticky . ")
            GROUP BY
                wp_posts.ID
            ORDER BY
                wp_posts.post_date DESC
            LIMIT 0,1";

    $first = $wpdb->get_results($first_query)[0]->ID;
    //$first = 1265356;

    $second_query = "
            SELECT SQL_CALC_FOUND_ROWS DISTINCT
                wp_posts.ID
            FROM
                wp_posts
            WHERE
                wp_posts.ID IN (" . $sticky . ") AND
                wp_posts.post_type = 'profile_article' AND
                wp_posts.post_status = 'publish' AND
                wp_posts.ID NOT IN (
                    SELECT post_id FROM wp_postmeta WHERE meta_key = '_only_link_access'
                ) AND
                wp_posts.ID NOT IN (
                    SELECT post_id FROM wp_postmeta WHERE meta_key = '_hide_on_mainpage' AND meta_value = '1'
                ) AND
                wp_posts.ID != ".((int)$first)."
            GROUP BY
                wp_posts.ID
            ORDER BY
                wp_posts.post_date DESC
            LIMIT 0, 1";
    $second = $wpdb->get_results($second_query)[0]->ID;
    $second = 1341019;


    $fs = array($first, $second);

    $third_query = "
            SELECT SQL_CALC_FOUND_ROWS DISTINCT
                wp_posts.ID
            FROM
                wp_posts
            WHERE
                wp_posts.ID NOT IN ( " . implode(",", $fs) . " ) AND
                wp_posts.post_type = 'profile_article' AND
                wp_posts.ID IN (
                    SELECT post_id FROM wp_postmeta WHERE meta_key = '_thumbnail_id'
                ) AND
                wp_posts.ID NOT IN (
                    SELECT post_id FROM wp_postmeta WHERE meta_key = '_only_link_access'
                ) AND
                wp_posts.post_status = 'publish' AND
                wp_posts.ID NOT IN ( SELECT post_id FROM wp_postmeta WHERE meta_key = '_hide_on_mainpage' AND meta_value = '1' )
            GROUP BY
                wp_posts.ID
            ORDER BY
                wp_posts.post_date DESC
            LIMIT 0,7";

    $third = array_map(function ($obj) {
        return $obj->ID;
    }, $wpdb->get_results($third_query));

    $fst = array_merge($fs, $third);
    update_option('mainpage_ids', json_encode($fst));

    if ( defined( 'WP_CLI' ) && WP_CLI ) {
        debug("option_updated");
    }

}







*/

