. */ define('SANDBOX_ADAPTIONS_PATH', plugin_dir_path(__FILE__)); define('SANDBOX_ADAPTIONS_URL', plugin_dir_url(__FILE__)); /** * Ajax hooks * ========== */ // user edit ajax add_action('wp_ajax_user_edit', 'sandbox_ajax_user_edit'); /** * Plugin setup hook * ================ */ add_action('plugins_loaded', 'sandbox_setup_site'); function sandbox_setup_site() { add_post_type_support('page', 'excerpt'); // init image sizes sandbox_image_sizes(); // init custom widgets add_action('widgets_init', 'sandbox_widgets_init'); // disable emoji support for more pagespeed add_action('init', 'sandbox_disable_emojis'); // remove unused default taxonomies add_action('init', 'sandbox_unregister_taxonomies'); // load admin styles add_action('admin_head', 'sandbox_admin_styles_load'); // remove WLW // https://wphacks.wordpress.com/2008/08/27/wordpress-tip-remove-wlw-rsd-link/ remove_action('wp_head', 'wlwmanifest_link'); // remove xml-rpc edit link remove_action('wp_head', 'rsd_link'); // Remove generator info // https://bhoover.com/remove-unnecessary-code-from-your-wordpress-blog-header/ remove_action('wp_head', 'wp_generator'); // remove wp-sitemap.xml when using a xml sitemap plugin add_filter('wp_sitemaps_enabled', '__return_false'); // quick fix for https://wordpress.org/support/topic/jqeuery-error-live-is-not-a-function/ add_action('admin_enqueue_scripts', 'sandbox_jcf_admin_fix'); // add a position field to user profile // add_action( 'show_user_profile', 'sandbox_user_profile' ); // add_action( 'edit_user_profile', 'sandbox_user_profile' ); // save/update position user profile field // add_action( 'personal_options_update', 'sandbox_save_user_profile' ); // add_action( 'edit_user_profile_update', 'sandbox_save_user_profile' ); if ( !is_admin() ) { // add usefull classNames add_filter('body_class', 'sandbox_body_class'); add_filter('post_class', 'sandbox_post_class'); add_filter('nav_menu_css_class', 'sandbox_menu_item_class', 10, 2); add_filter('the_category', 'sandbox_category_class'); // adds login and out links to menus "site-loggedin" and "site-loggedout" add_filter('wp_nav_menu_items', 'sandbox_nav_menu_items', 10, 2); // Custom login screen add_filter('login_headerurl', 'sandbox_login_headerurl'); add_filter('login_headertext', 'sandbox_login_headertext'); add_filter('login_enqueue_scripts', 'sandbox_login_enqueue_scripts'); // Change Wordpress email subject add_filter('wp_mail_from_name', 'sandbox_mail_from_name'); // remove lazy block wrapper container markup in frontend add_filter( 'lzb/block_render/allow_wrapper', '__return_false' ); // custom archive query settings add_action( 'pre_get_posts', 'sandbox_archive_query'); // Admin pages related stuff } else { // add usefull classNames add_filter('admin_body_class', 'sandbox_admin_body_class'); } // plugin integrations // lazy block Handlebars helper add_action('lzb_handlebars_object', 'sandbox_lazyblock_handlebars_helper'); // listo order for cf7 select input add_filter('wpcf7_form_tag_data_option', 'sandbox_listo_ordered', 11, 1); // listo uses an iso3 country list // country iso2 to iso3: // https://github.com/i-rocky/country-list-js/blob/master/data/iso_alpha_3.json // all countries and phone-codes (iso2): // https://github.com/ChromaticHQ/intl-tel-input/blob/master/src/js/data.js // handle required attribute add_filter('wpcf7_form_elements', 'sandbox_wpcf7_form_elements'); // filter values of form tags to email add_filter( 'cf7sg_mailtag_email-updates', 'sandbox_cf7_mailtag_email_updates', 10, 3); // remove layout from "cf7 smart grid plugin" // add_action('smart_grid_register_styles', 'sandbox_smart_grid_register_styles'); // use really simple captcha in contact form 7 // add_filter('wpcf7_use_really_simple_captcha', '__return_true'); // CF7 gated content with custom field add_filter('do_shortcode_tag', 'sandbox_cf7_gated_content', 10, 3); } // Check if function "wp_body_open" exits, if not create it if ( !function_exists('wp_body_open') ) { function wp_body_open() { do_action('wp_body_open'); } } // add custom image sizes function sandbox_image_sizes() { $image_sizes = sandbox_get_image_sizes(); if ( !empty( $image_sizes ) ) { foreach ( $image_sizes as $id => $size ) { add_image_size( $id, $size['args']['w'], $size['args']['h'], $size['args']['crop'] ); } } } /** * custom image sizes settings * * @see https://en.wikipedia.org/wiki/16:9_aspect_ratio */ function sandbox_get_image_sizes() { $sizes = array(); // larger thumbnail $sizes['thumbnail-semi-large'] = array( 'title' => __('Thumbnail-Semi-Large', 'sandbox'), 'args' => array( 'w' => 640, 'h' => 640, 'crop' => true, ), ); // Standard (with sidebar) 16:9 $sizes['sandbox-default'] = array( 'title' => __('Standard (with sidebar)', 'sandbox'), 'args' => array( 'w' => 800, 'h' => 450, 'crop' => true, ), ); //Full width (no sidebar) 16:9 $sizes['sandbox-wide'] = array( 'title' => __('Full Width (no sidebar)', 'sandbox'), 'args' => array( 'w' => 1280, 'h' => 720, 'crop' => true, ), ); // Hero image 16:9 $sizes['sandbox-hero'] = array( 'title' => __('Hero image', 'sandbox'), 'args' => array( 'w' => 1920, 'h' => 1080, 'crop' => true, ), ); // Hero image 16:9 $sizes['blog-hero'] = array( 'title' => __('Hero image', 'sandbox'), 'args' => array( 'w' => 1500, 'h' => 476, 'crop' => true, ), ); // keep aspect ratio $sizes['semi-large'] = array( 'title' => __('Semi-Large', 'sandbox'), 'args' => array( 'w' => 640, 'h' => 640, 'crop' => false, ), ); return $sizes; } // Custom login screen - home url function sandbox_login_headerurl(){ return home_url(); } // Custom login screen - header text function sandbox_login_headertext(){ return wp_get_document_title(); } // Custom login screen - login style function sandbox_login_enqueue_scripts(){ // loads style/images from template folder wp_register_style('sandbox_login', get_template_directory_uri() . '/css/login.css'); wp_enqueue_style('sandbox_login'); } // init custom widgets function sandbox_widgets_init(){ register_widget('sandbox_faq_nav_widget'); // register_widget('sandbox_events_widget'); // register_widget('sandbox_social_widget'); // register_widget('sandbox_slider_widget'); } /** * Disable the emoji's * https://kinsta.com/knowledgebase/disable-emojis-wordpress/ */ function sandbox_disable_emojis(){ remove_action('wp_head', 'print_emoji_detection_script', 7 ); remove_action('admin_print_scripts', 'print_emoji_detection_script'); remove_action('wp_print_styles', 'print_emoji_styles'); remove_action('admin_print_styles', 'print_emoji_styles'); remove_filter('the_content_feed', 'wp_staticize_emoji'); remove_filter('comment_text_rss', 'wp_staticize_emoji'); remove_filter('wp_mail', 'wp_staticize_emoji_for_email'); add_filter('tiny_mce_plugins', 'disable_emojis_tinymce'); add_filter('wp_resource_hints', 'disable_emojis_remove_dns_prefetch', 10, 2 ); } /** * Filter function used to remove the tinymce emoji plugin. * * @param array $plugins * @return array Difference betwen the two arrays */ function disable_emojis_tinymce($plugins) { if ( is_array($plugins) ) { return array_diff($plugins, array('wpemoji')); } else { return array(); } } /** * Remove emoji CDN hostname from DNS prefetching hints. * * @param array $urls URLs to print for resource hints. * @param string $relation_type The relation type the URLs are printed for. * @return array Difference betwen the two arrays. */ function disable_emojis_remove_dns_prefetch( $urls, $relation_type ) { if ( 'dns-prefetch' == $relation_type ) { /** This filter is documented in wp-includes/formatting.php */ $emoji_svg_url = apply_filters('emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/'); $urls = array_diff( $urls, array( $emoji_svg_url ) ); } return $urls; } // remove unused default taxonomies function sandbox_unregister_taxonomies(){ register_taxonomy('category', array(), array('show_in_nav_menus' => false)); } // adds usefull body classNames // @param $classes array function sandbox_body_class($classes){ $classNames = array(); $post = get_post(); $parents = get_post_ancestors($post); $slug = sandbox_get_the_slug(); $post_type = get_post_type(); $classNames[] = $post_type . '-' . $slug; if ( is_home() ) { $classNames[] = 'archive'; } if ( is_active_sidebar('content-before') && is_active_sidebar('content-after') ) { $classNames[] = 'has-content-sidebars'; } else if ( is_active_sidebar('content-before') || is_active_sidebar('content-after') ) { $classNames[] = 'has-content-sidebar'; if ( is_active_sidebar('content-before') ) { $classNames[] = 'has-sidebar-content-before'; } else if ( is_active_sidebar('content-after') ) { $classNames[] = 'has-sidebar-content-after'; } } /* use for parent pages as sections if ( !empty($parents) ) { $parents[] = $post->ID; foreach ( $parents as $parentID ) { if ( $parentID === 8 ) { $classNames[] = 'section-you-name-it'; } } } */ // echo var_dump($classes); return array_merge( $classes, $classNames ); } // add usefull classNames // @param $classes string function sandbox_admin_body_class($classes){ $classNames = ''; $screen = get_current_screen(); if ( $screen->base === 'post' && $screen->post_type === 'page' ) { $page_template = get_post_meta(get_the_ID(), '_wp_page_template', true); $classNames .= ' used-template-' . esc_attr(str_replace('.php', '', $page_template)); } return $classes . ' ' . $classNames; } // add custom styles for admin section function sandbox_admin_styles_load(){ wp_register_style('sandbox_admin', SANDBOX_ADAPTIONS_URL . '/admin/style.css'); wp_enqueue_style('sandbox_admin'); } function sandbox_jcf_admin_fix(){ $screen = get_current_screen(); if ( in_array($screen->id, array('settings_page_jcf_admin', 'settings_page_jcf_fieldset_index')) ) { wp_enqueue_script('jquery-migrate'); } } // add a position field to user profile function sandbox_user_profile($user) { ?>
Please enter position at your organisation. |
|
Please enter your LinkedIn username. |
'faq', 'posts_per_page' => -1, 'fields' => 'ids', 'meta_query' => array( 'relation' => 'OR', array( 'key' => '_hide', 'value' => 1, 'compare' => 'NOT LIKE', ), array( 'key' => '_hide', 'value' => 'bug #23268', 'compare' => 'NOT EXISTS', ) ), )); $topic_term_objects = get_terms(array( 'taxonomy' => 'topic', 'object_ids' => $faq_ids, 'orderby' => 'order', // needs plugin https://github.com/stuttter/wp-term-order/ 'order' => 'ASC', )); if ( !empty($topic_term_objects) && !is_wp_error($topic_term_objects) ) { echo $before_widget; if ( $widget_title ) { echo $before_title . $widget_title . $after_title; } echo '