forked from LiveCarta/LiveCartaWP
125 lines
3.8 KiB
PHP
125 lines
3.8 KiB
PHP
<?php
|
|
require 'inc/menu-item-custom-fields.php';
|
|
|
|
/**
|
|
* Setup WordPress
|
|
*/
|
|
add_action('after_setup_theme', function () {
|
|
/*
|
|
* Let WordPress manage the document title.
|
|
* By adding theme support, we declare that this theme does not use a
|
|
* hard-coded <title> tag in the document head, and expect WordPress to
|
|
* provide it for us.
|
|
*/
|
|
add_theme_support('title-tag');
|
|
|
|
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/newcss.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_style('lawcarta-external-style', get_theme_file_uri('/assets/css/style.min.css'), ['jquery-ui']);
|
|
wp_enqueue_style('lawcarta-newcss', get_theme_file_uri('/assets/css/newcss.min.css'), ['lawcarta-external-style']);
|
|
wp_enqueue_style('lawcarta-custom', get_theme_file_uri('/assets/css/custom.css'), ['lawcarta-newcss']);
|
|
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 '<input type="text" name="lawcarta_company" value="' . $setting . '">';
|
|
}
|
|
|
|
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;
|
|
});
|