From 248cc6bdd9867e18fc2fffdf6874647ab241673b Mon Sep 17 00:00:00 2001 From: NIU Administrator Date: Sun, 1 Nov 2020 16:39:22 +0900 Subject: [PATCH] support tag cloud to static page. --- functions.php | 158 +++++++++++++++++++++++++++++--------------------- 1 file changed, 93 insertions(+), 65 deletions(-) diff --git a/functions.php b/functions.php index 26da161..6dbd02a 100644 --- a/functions.php +++ b/functions.php @@ -10,13 +10,14 @@ add_filter('auto_update_plugin', '__return_true'); // remove parent theme defined filters and actions add_action('after_setup_theme', 'cbsonline_disable_parent_defines'); -function cbsonline_disable_parent_defines() { +function cbsonline_disable_parent_defines() +{ // remove 'ico - image/x-icon' mime support remove_filter('upload_mimes', 'biz_vektor_mine_types'); // remove web fonts - remove_action('wp_enqueue_scripts','biz_vektor_addWebFonts'); + remove_action('wp_enqueue_scripts', 'biz_vektor_addWebFonts'); // remove buggy biz_vector script - remove_action('wp_head','biz_vektor_addJScripts'); + remove_action('wp_head', 'biz_vektor_addJScripts'); } // disable emoji @@ -31,128 +32,139 @@ remove_filter('wp_mail', 'wp_staticize_emoji_for_email'); // remove unnecessary head tags // - rest -remove_action('wp_head','rest_output_link_wp_head'); +remove_action('wp_head', 'rest_output_link_wp_head'); // - embed -remove_action('wp_head','wp_oembed_add_discovery_links'); -remove_action('wp_head','wp_oembed_add_host_js'); +remove_action('wp_head', 'wp_oembed_add_discovery_links'); +remove_action('wp_head', 'wp_oembed_add_host_js'); // - feed -remove_action('wp_head','feed_links', 2); -remove_action('wp_head','feed_links_extra', 3); +remove_action('wp_head', 'feed_links', 2); +remove_action('wp_head', 'feed_links_extra', 3); // - rsd -remove_action('wp_head','rsd_link'); +remove_action('wp_head', 'rsd_link'); // - windows live writer -remove_action('wp_head','wlwmanifest_link'); +remove_action('wp_head', 'wlwmanifest_link'); // - generator -remove_action('wp_head','wp_generator'); +remove_action('wp_head', 'wp_generator'); // - shortlink -remove_action('wp_head','wp_shortlink_wp_head'); +remove_action('wp_head', 'wp_shortlink_wp_head'); // - rel link -remove_action('wp_head','index_rel_link'); -remove_action('wp_head','parent_post_rel_link', 10); -remove_action('wp_head','start_post_rel_link', 10); -remove_action('wp_head','adjacent_posts_rel_link_wp_head'); +remove_action('wp_head', 'index_rel_link'); +remove_action('wp_head', 'parent_post_rel_link', 10); +remove_action('wp_head', 'start_post_rel_link', 10); +remove_action('wp_head', 'adjacent_posts_rel_link_wp_head'); // disable automatically appending srcset attribute in img tag add_filter('wp_calculate_image_srcset_meta', '__return_null'); // disable DNS prefetch add_filter('wp_resource_hints', 'cbsonline_remove_dns_prefetch', 10, 2); -function cbsonline_remove_dns_prefetch( $hints, $relation_type ) { - if ( 'dns-prefetch' === $relation_type ) { - return array_diff( wp_dependencies_unique_hosts(), $hints ); +function cbsonline_remove_dns_prefetch($hints, $relation_type) +{ + if ('dns-prefetch' === $relation_type) { + return array_diff(wp_dependencies_unique_hosts(), $hints); } + return $hints; } // add styles add_action('wp_enqueue_scripts', 'cbsonline_add_styles'); -function cbsonline_add_styles() { +function cbsonline_add_styles() +{ wp_enqueue_style('parent-style', get_template_directory_uri().'/style.css'); wp_enqueue_style('dashicons'); } // add scripts add_action('wp_head', 'cbsonline_add_scripts'); -function cbsonline_add_scripts() { +function cbsonline_add_scripts() +{ wp_register_script('biz-vektor-fix-min-js', get_stylesheet_directory_uri().'/js/biz-vektor-fix-min.js', ['jquery'], '20201029'); wp_enqueue_script('biz-vektor-fix-min-js'); } // add widgets -function cbsonline_widgets_init() { - register_sidebar( array( - 'name' => 'ヘッダー ウィジェット', - 'id' => 'header-widget-area', - 'before_widget' => '
', - 'after_widget' => '
', - 'before_title' => '

', - 'after_title' => '

', - ) ); +function cbsonline_widgets_init() +{ + register_sidebar([ + 'name' => 'ヘッダー ウィジェット', + 'id' => 'header-widget-area', + 'before_widget' => '
', + 'after_widget' => '
', + 'before_title' => '

', + 'after_title' => '

', + ]); - register_sidebar( array( - 'name' => 'トップバナー ウィジェット', - 'id' => 'topbnr-widget-area', - 'before_widget' => '
', - 'after_widget' => '
', - 'before_title' => '

', - 'after_title' => '

', - ) ); - - register_sidebar( array( - 'name' => 'トップイメージ ウィジェット', - 'id' => 'topimg-widget-area', - 'before_widget' => '
', - 'after_widget' => '
', - 'before_title' => '

', - 'after_title' => '

', - ) ); - + register_sidebar([ + 'name' => 'トップバナー ウィジェット', + 'id' => 'topbnr-widget-area', + 'before_widget' => '
', + 'after_widget' => '
', + 'before_title' => '

', + 'after_title' => '

', + ]); + + register_sidebar([ + 'name' => 'トップイメージ ウィジェット', + 'id' => 'topimg-widget-area', + 'before_widget' => '
', + 'after_widget' => '
', + 'before_title' => '

', + 'after_title' => '

', + ]); } add_action('widgets_init', 'cbsonline_widgets_init'); // tweak bogo plugin // - disable flags -add_filter( 'bogo_use_flags','bogo_use_flags_false'); -function bogo_use_flags_false() { +add_filter('bogo_use_flags', 'bogo_use_flags_false'); +function bogo_use_flags_false() +{ return false; } // - remove ' (United States)' strings from en_US language -add_filter( 'bogo_language_switcher','replace_bogo_text'); -function replace_bogo_text($output) { - return str_replace(' (United States)', '', $output); +add_filter('bogo_language_switcher', 'replace_bogo_text'); +function replace_bogo_text($output) +{ + return str_replace(' (United States)', '', $output); } // add short code // - topbox : http://www.webopixel.net/wordpress/53.html -function cbsonline_shortcode_TopBox( $atts, $content = null ) { - $content = do_shortcode(shortcode_unautop($content)); +function cbsonline_shortcode_TopBox($atts, $content = null) +{ + $content = do_shortcode(shortcode_unautop($content)); extract(shortcode_atts(['class' => 'default'], $atts)); - + return '
'.$content.'
'; } add_shortcode('topbox', 'cbsonline_shortcode_TopBox'); // allow illustrator file upload -function cbsonline_allow_upload_ai($mimes) { - $mimes['ai'] = 'image/x-illustrator'; +function cbsonline_allow_upload_ai($mimes) +{ + $mimes['ai'] = 'image/x-illustrator'; + return $mimes; } add_filter('upload_mimes', 'cbsonline_allow_upload_ai'); // force override Archive widget arguments -add_filter( 'widget_archives_args', 'cbsonline_widget_archives_args' ); -function cbsonline_widget_archives_args( $args ) { - // yearly +add_filter('widget_archives_args', 'cbsonline_widget_archives_args'); +function cbsonline_widget_archives_args($args) +{ + // yearly $args['type'] = 'yearly'; // maximum number of items : 10 years $args['limit'] = 10; - + return $args; } // support category based archives add_filter('getarchives_join', 'cbsonline_category_getarchives_join', 10, 2); -function cbsonline_category_getarchives_join($join, $r) { +function cbsonline_category_getarchives_join($join, $r) +{ global $wpdb; if (is_category()) { $cat = intval(get_query_var('cat')); @@ -165,7 +177,8 @@ function cbsonline_category_getarchives_join($join, $r) { } } add_filter('getarchives_where', 'cbsonline_category_getarchives_where', 10, 2); -function cbsonline_category_getarchives_where($where, $r) { +function cbsonline_category_getarchives_where($where, $r) +{ if (is_category()) { $cat = intval(get_query_var('cat')); if ($cat > 0) { @@ -174,7 +187,8 @@ function cbsonline_category_getarchives_where($where, $r) { } } add_filter('year_link', 'cbsonline_category_year_link', 10, 2); -function cbsonline_category_year_link($url, $year){ +function cbsonline_category_year_link($url, $year) +{ global $wp_rewrite; if (is_category()) { $cat = intval(get_query_var('cat')); @@ -182,6 +196,20 @@ function cbsonline_category_year_link($url, $year){ $url .= '?cat='.get_query_var('cat'); } } + return $url; } +// support tag cloud for static pages +add_action('init', 'cbsonline_add_tag_to_page'); +function cbsonline_add_tag_to_page() +{ + register_taxonomy_for_object_type('post_tag', 'page'); +} +add_action('pre_get_posts', 'cbsonline_add_page_to_tag_archive'); +function cbsonline_add_page_to_tag_archive($obj) +{ + if (is_tag()) { + $obj->query_vars['post_type'] = ['post', 'page']; + } +}