init_filesystem( site_url() ) === false ) return false; $_is['fsinit'] = true; } return $filesystem; } endif; /*--------------------------------------------------------------------------- * default set *---------------------------------------------------------------------------*/ if( function_exists('thk_default_set') === false ): function thk_default_set( $init_set = false ) { global $default_set; if( $default_set === false || $init_set === true ) { require_once( INC . 'defaults.php' ); $conf = new defConfig(); $conf->set_luxe_variable(); $default_set = true; } } endif; /*--------------------------------------------------------------------------- * CSS / Javascript の圧縮・結合で必要なファイルのインクルード * 条件によって、load header でもインクルードするので関数化 *---------------------------------------------------------------------------*/ if( function_exists('thk_regenerate_files') === false ): function thk_regenerate_files( $shutdown = false, $require_only = false ) { require( INC . 'custom-css.php' ); require( INC . 'compress.php' ); if( $require_only === true ) { return; } if( $shutdown === false ) { thk_compress(); thk_parent_css_bind(); thk_child_js_comp(); thk_create_inline_style(); thk_empty_remove(); } else { add_filter( 'shutdown', 'thk_compress', 75 ); add_filter( 'shutdown', 'thk_parent_css_bind', 80 ); add_filter( 'shutdown', 'thk_child_js_comp', 80 ); add_filter( 'shutdown', 'thk_create_inline_style', 85 ); add_filter( 'shutdown', 'thk_empty_remove', 90 ); } } endif; /*--------------------------------------------------------------------------- * タイトル修正 *---------------------------------------------------------------------------*/ if( function_exists('thk_title_separator') === false ): function thk_title_separator( $sep ) { global $luxe; $sep = isset( $luxe['title_sep'] ) && $luxe['title_sep'] === 'hyphen' ? '-' : '|'; return $sep; } add_filter( 'document_title_separator', 'thk_title_separator' ); endif; add_filter( 'document_title_parts', function( $title ) { global $luxe, $_is; $ret = $title; /* Memo: https://developer.wordpress.org/reference/hooks/document_title_parts/ * * $title (array) The document title parts. * 'title' (string) Title of the viewed page. * 'page' (string) Optional. Page number if paginated. * 'tagline' (string) Optional. Site description when on home page. * 'site' (string) Optional. Site title when not on home page. */ switch( true ) { case $_is['home']: if( isset( $luxe['title_top_list'] ) && $luxe['title_top_list'] === 'site' ) { $ret = array( 'site' => THK_SITENAME ); if( isset( $title['page'] ) ) $ret['page'] = $title['page']; } break; case $_is['front_page']: if( isset( $luxe['title_front_page'] ) ) { if( $luxe['title_front_page'] === 'site' ) { $ret = array( 'site' => THK_SITENAME ); } elseif( $luxe['title_front_page'] === 'site_title' ) { $ret = array( 'site' => THK_SITENAME, 'title' => get_the_title() ); } elseif( $luxe['title_front_page'] === 'title_site' ) { $ret = array( 'title' => get_the_title(), 'site' => THK_SITENAME ); } } break; case $_is['singular']: global $post; $addhead = get_post_meta( $post->ID, 'addhead', true ); if( !empty( $addhead ) ) { if( stripos( $addhead, '<' . 'title>' ) !== false && stripos( $addhead, '' ) !== false ) { $title = esc_html( preg_replace( '/.*?<' . 'title>(.*?)<\/title' . '>.*/ism', '$1', $addhead ) ); $ret = array( 'title' => $title ); } } if( isset( $luxe['title_other'] ) ) { if( $luxe['title_other'] === 'title' ) { $ret = array( 'title' => get_the_title() ); if( isset( $title['page'] ) ) $ret['page'] = $title['page']; } elseif( $luxe['title_other'] === 'site_title' ) { $ret = array( 'site' => THK_SITENAME, 'title' => get_the_title() ); if( isset( $title['page'] ) ) $ret['page'] = $title['page']; } } break; default: if( isset( $luxe['title_other'] ) ) { if( $luxe['title_other'] === 'title' ) { $ret = array( 'title' => current( $title ) ); if( isset( $title['page'] ) ) $ret['page'] = $title['page']; } elseif( $luxe['title_other'] === 'site_title' ) { $ret = array( 'site' => THK_SITENAME, 'title' => current( $title ) ); if( isset( $title['page'] ) ) $ret['page'] = $title['page']; } } break; } return $ret; } ); /*--------------------------------------------------------------------------- * プロトコル消去 *---------------------------------------------------------------------------*/ if( function_exists( 'pdel' ) === false ): function pdel( $url ) { return str_replace( array( 'http:', 'https:' ), '', esc_url( $url ) ); } endif; /*--------------------------------------------------------------------------- * スクリプト類に勝手に入ってくるバージョン番号消す *---------------------------------------------------------------------------*/ if( function_exists( 'remove_url_version' ) === false ): function remove_url_version( $arg ) { if( strpos( $arg, 'ver=' ) !== false ) { $arg = esc_url( remove_query_arg( 'ver', $arg ) ); } return $arg; } add_filter( 'style_loader_src', 'remove_url_version', 99 ); add_filter( 'script_loader_src', 'remove_url_version', 99 ); endif; /*--------------------------------------------------------------------------- * ヘッダーに canonical 追加 *---------------------------------------------------------------------------*/ if( function_exists( 'thk_rel_canonical' ) === false ): function thk_rel_canonical() { global $_is, $paged, $page, $wp_query; $canonical_url = null; switch( true ) { case $_is['home']: if( get_option('page_for_posts') ){ $canonical_url = canonical_paged_uri( get_page_link( get_option('page_for_posts') ) ); } else { $canonical_url = canonical_paged_uri( THK_HOME_URL ); } break; case $_is['front_page']: $canonical_url = canonical_paged_uri( THK_HOME_URL ); break; case $_is['category']: $canonical_url = canonical_paged_uri( get_category_link( get_query_var('cat') ) ); break; case $_is['tag']: $canonical_url = canonical_paged_uri( get_tag_link( get_query_var('tag_id') ) ); break; case $_is['author']: $canonical_url = canonical_paged_uri( get_author_posts_url( get_query_var( 'author' ), get_query_var( 'author_name' ) ) ); break; case $_is['year']: $canonical_url = canonical_paged_uri( get_year_link( get_the_time('Y') ) ); break; case $_is['month']: $canonical_url = canonical_paged_uri( get_month_link( get_the_time('Y'), get_the_time('m') ) ); break; case $_is['day']: $canonical_url = canonical_paged_uri( get_day_link( get_the_time('Y'), get_the_time('m'), get_the_time('d') ) ); break; case $_is['attachment'] : $canonical_url = get_the_permalink(); break; case $_is['post_type_archive'] : $post_type = get_query_var( 'post_type' ); if( is_array( $post_type ) === true ) { $post_type = reset( $post_type ); } $canonical_url = canonical_paged_uri( get_post_type_archive_link( $post_type ) ); break; default: break; } if( $canonical_url !== null ): ?> = 2 || $page >= 2 ) { // パーマリンクが設定されてる場合 if( is_object( $wp_rewrite ) === true && $wp_rewrite->using_permalinks() ) { if( substr( $canonical_url, -1 ) === '/' ) { $canonical_url .= 'page/' . max( $paged, $page ) . '/'; } else { $canonical_url .= '/page/' . max( $paged, $page ); } } // パーマリンクがデフォルト設定(動的URL)の場合 else { if( $_is['front_page'] === true ) { $canonical_url .= '?paged=' . max( $paged, $page ); } else { $canonical_url .= '&paged=' . max( $paged, $page ); } } } return $canonical_url; } endif; /*--------------------------------------------------------------------------- * ヘッダーに next / prev 追加 *---------------------------------------------------------------------------*/ if( function_exists( 'thk_rel_next_prev' ) === false ): function thk_rel_next_prev() { global $_is, $paged, $post, $wp_query; if( $_is['singular'] === false ) { $max_page = (int)$wp_query->max_num_pages; if( empty( $paged ) ) { $paged = 1; } $nextpage = (int)$paged + 1; if( $nextpage <= $max_page ) { ?> 1 ) { ?> ', $post->post_content) ); if( $pages > 1 ) { $prev = singular_nextpage_link( $pages, 'prev' ); $next = singular_nextpage_link( $pages, 'next' ); if( !empty( $prev ) ) { ?> で分割した場合の next / prev 追加関数 *---------------------------------------------------------------------------*/ if( function_exists( 'singular_nextpage_link' ) === false ): function singular_nextpage_link( $pages, $rel = 'prev' ) { global $post, $page; $url = ''; if( $pages > 1 ) { $i = $rel === 'prev' ? $page - 1 : $page + 1; if( $i >= 0 && $i <= $pages ) { if( 1 === $i ) { if( $rel === 'prev' ) { $url = get_permalink(); } else { $url = trailingslashit( get_permalink() ) . user_trailingslashit( $i + 1, 'single_paged' ); } } else { $opt = get_option('permalink_structure'); if( empty( $opt ) || in_array( $post->post_status, array('draft', 'pending') ) ) { $url = add_query_arg( 'page', $i, get_permalink() ); } else { $url = trailingslashit( get_permalink() ) . user_trailingslashit( $i, 'single_paged' ); } } } } return $url; } endif; /*--------------------------------------------------------------------------- * サイドバーのカラム数を決めて、サイドバーを呼び出す *---------------------------------------------------------------------------*/ if( function_exists( 'thk_call_sidebar' ) === false ): function thk_call_sidebar() { global $luxe, $_is; if( isset( $luxe['buffering_enable'] ) ) { thk_flash(); } // 1カラムの時はサイドバー表示しない if( isset($luxe['column_style']) && $luxe['column_style'] === '1column' ) return true; if( isset($luxe['column_style']) && $luxe['column_style'] === '3column' && !isset( $luxe['amp'] ) ) { if( isset( $luxe['column3_reverse'] ) ) { echo apply_filters( 'thk_sidebar', '' ); } else { echo apply_filters( 'thk_sidebar', 'col3' ); } ?> タグの最初の無駄な空白削除 $contents = str_replace( "' ) === false ) { $content .= ''; } } if( isset( $luxe['lazyload_noscript'] ) ) { if( stripos( $content, '