tag in the document head, and expect WordPress to * provide it for us. */ add_theme_support('title-tag'); add_theme_support( 'post-thumbnails' ); register_nav_menus([ 'top' => __('Top Menu', 'lawcarta'), 'bottom' => __('Bottom Menu', 'lawcarta'), 'social' => __( 'Social Links Menu', 'lawcarta' ), ]); add_editor_style([ lawcarta_fonts_url(), 'assets/css/style.min.css', 'assets/css/custom.css', 'assets/css/livecarta.css' ]); }); /** * Setup title */ add_filter('document_title_separator', function () { return '|'; }); add_filter('document_title_parts', function ($title) { unset($title['tagline']); return $title; }, 10, 1); /** * Enqueue scripts and styles. */ function lawcarta_fonts_url() { $font_families = [ 'Open Sans:300,400,600,700', 'PT Serif:400,700', ]; $query_args = [ 'family' => urlencode(implode('|', $font_families)), ]; $fonts_url = add_query_arg($query_args, 'https://fonts.googleapis.com/css'); return esc_url_raw($fonts_url); } add_action('wp_enqueue_scripts', function () { wp_enqueue_style('lawcarta-fonts', lawcarta_fonts_url(), array(), null); wp_enqueue_script('custom-jquery', '//code.jquery.com/jquery-2.2.4.min.js', [], null, true); wp_enqueue_style('bootstrap', '//stackpath.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css', ['lawcarta-fonts'], null); wp_enqueue_script('bootstrap', '//stackpath.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js', ['custom-jquery'], null, true); wp_enqueue_style('jquery-ui', '//code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css', ['bootstrap'], null); wp_enqueue_script('jquery-ui', '//code.jquery.com/ui/1.12.1/jquery-ui.min.js', ['custom-jquery'], null, true); wp_enqueue_script('lawcarta-js', get_theme_file_uri('/assets/js/faqSearch.js'), ['custom-jquery'], null, true); wp_enqueue_style('lawcarta-libs', get_theme_file_uri('/assets/css/libs.min.css')); if(is_front_page()){ wp_enqueue_style('lawcarta-style-index', get_theme_file_uri('/assets/css/main-page.min.css'),['lawcarta-libs']); }else{ wp_enqueue_style('lawcarta-style-index', get_theme_file_uri('/assets/css/main-page.min.css'),['lawcarta-libs']); //wp_enqueue_style('lawcarta-external-style', get_theme_file_uri('/assets/css/style.min.css'), ['jquery-ui','lawcarta-style-index']); wp_enqueue_style('lawcarta-custom', get_theme_file_uri('/assets/css/custom.css'), ['lawcarta-style-index']); wp_enqueue_style('lawcarta-style', get_stylesheet_uri(), ['lawcarta-custom']); } }); /** * Filter Menu Item Class */ add_filter('wp_setup_nav_menu_item', function ($menu_item) { $meta = LawCarta_Menu_Item_Custom_Fields::getMeta($menu_item); $menu_item->meta = $meta; $menu_item->meta['type'] = $menu_item->object; if ($menu_item->object == 'page') { $menu_item->meta['slug'] = get_post_field( 'post_name', $menu_item->object_id ); } else if ($menu_item->object == 'media_category') { $menu_item->meta['slug'] = get_term_field( 'slug', $menu_item->object_id ); } return $menu_item; }); /** * Setup Admin Portal */ function lawcarta_company_field_cb() { $setting = get_option('lawcarta_company'); $setting = isset( $setting ) ? esc_attr( $setting ) : ''; echo ''; } add_action('admin_init', function () { register_setting('general', 'lawcarta_company', [ 'type' => 'string', ]); add_settings_field( 'lawcarta_company_field', __('Company Name', 'lawcarta'), 'lawcarta_company_field_cb', 'general' ); }); /** * Setup TinyMCE */ add_filter('tiny_mce_before_init', function ($settings) { $opts = '*[*]'; $settings['valid_elements'] = $opts; $settings['extended_valid_elements'] = $opts; $settings['valid_children']="+a[div|p|ul|ol|li|h1|h2|h3|h4|h5|h5|h6]"; return $settings; }); function enableSearchQuery() { return !empty($_POST['search_text']); } function getFaqPosts($args) { if (enableSearchQuery()) { // WP magic add_filter( 'posts_where', 'my_filter_post_where' ); } $posts = get_posts($args); if (enableSearchQuery()) { remove_filter( 'posts_where', 'my_filter_post_where' ); } return $posts; } function getFaaTaxonomyIds() { if (!enableSearchQuery()) { return false; } $posts = getFaqPosts([ 'post_type' => 'fac_category_answer', 'suppress_filters' => false, 'numberposts' => -1, ]); if (count($posts) == 0) { return []; } $tIds = []; foreach ($posts as $post) { $taxonomies = get_the_terms($post, 'fac_category_type'); if (count($taxonomies) > 0) { foreach ($taxonomies as $taxonomy) { if (!in_array($taxonomy->term_id, $tIds)) { $tIds[] = $taxonomy->term_id; } } } } return $tIds; } function my_filter_post_where( $where) { global $wpdb; if (!enableSearchQuery()) { return $where; } $parts = explode(' ', trim($_POST['search_text'])); $likeConditions = []; foreach($parts as $part){ $likeConditions [] = $wpdb->posts . '.post_title LIKE \'%' . trim(esc_sql( $part )) . '%\' '; $likeConditions [] = $wpdb->posts . '.post_content LIKE \'%' . trim(esc_sql( $part )) . '%\' '; } $where .= ' AND ( '.implode(' OR ', $likeConditions) .' )'; return $where; } function get_lawcarta_url(){ $urlParts = parse_url(home_url()); $scheme = isset($urlParts['scheme']) ? $urlParts['scheme'] . '://' : ''; $baseTemplate = basename( get_page_template() ); $host = isset($urlParts['host']) ? $urlParts['host'] : ''; if (defined('LAWCARTA_SUBDOMAIN')) { $hostParts = explode('.', $host); if (count($hostParts) === 3) { $wp_sub_domain = array_shift($hostParts); } if (!empty(LAWCARTA_SUBDOMAIN)) { array_unshift($hostParts, LAWCARTA_SUBDOMAIN); } $host = implode('.', $hostParts); //Fix for staging env because of it use same domain carta.live for both lawcarta/livecarta if(LAWCARTA_ENVIRONMENT_NAME == 'staging' && $wp_sub_domain == 'staging-live'){ $host = str_replace('staging-law', 'staging-live',$host); } //Temporary fix for new prod env because of it use same domain carta.live for both lawcarta/livecarta if(LAWCARTA_ENVIRONMENT_NAME == 'prod' && $wp_sub_domain == 'prod-live'){ $host = str_replace('prod-law', 'prod-live',$host); } //Temporary fix for new prod env because of it use same domain carta.live for both lawcarta/livecarta if(LAWCARTA_ENVIRONMENT_NAME == 'prod' && $wp_sub_domain == ''){ $host = str_replace('app-law', 'app',$host); } } $port = isset($urlParts['port']) ? $urlParts['port'] : ''; if (defined('LAWCARTA_PORT')) { $port = LAWCARTA_PORT; } if (!empty($port)) { $port = ':' . $port; } return "$scheme$host$port"; } function get_lawcarta_ga_config(){ $res = ''; if(wp_get_theme() == 'LawCarta'){ $res = LAWCARTA_GA_CONFIG; }elseif(wp_get_theme() == 'LiveCarta'){ $res = LIVECARTA_GA_CONFIG; } return $res; } add_filter( 'post_thumbnail_html', 'remove_width_attribute', 10 ); add_filter( 'image_send_to_editor', 'remove_width_attribute', 10 ); function remove_width_attribute( $html ) { $html = preg_replace( '/(width|height)="\d*"\s/', "", $html ); return $html; } /* Register template redirect action callback */ add_action('template_redirect', 'meks_remove_wp_archives'); /* Remove archives */ function meks_remove_wp_archives(){ //If we are on category or tag or date or author archive if( is_category() || is_tag() || is_date() || is_author() ) { global $wp_query; $wp_query->set_404(); //set to 404 not found page } } add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 2); function special_nav_class ($classes, $item) { if ($item->current){ $classes[] = 'active '; } return $classes; } function add_custom_class($classes=array(), $menu_item=false) { //todo: detect blog post page if ( !is_page() && 'blog' == strtolower($menu_item->title) && !in_array( 'active', $classes ) ) { $classes[] = 'active'; } return $classes; } add_filter('nav_menu_css_class', 'add_custom_class', 100, 2);