author | ymh <ymh.work@gmail.com> |
Mon, 14 Oct 2019 17:39:30 +0200 | |
changeset 7 | cf61fcea0001 |
parent 5 | 5e2f62d02dcd |
permissions | -rw-r--r-- |
5 | 1 |
<?php |
2 |
/** |
|
3 |
* Twenty Fifteen functions and definitions |
|
4 |
* |
|
5 |
* Set up the theme and provides some helper functions, which are used in the |
|
6 |
* theme as custom template tags. Others are attached to action and filter |
|
7 |
* hooks in WordPress to change core functionality. |
|
8 |
* |
|
9 |
* When using a child theme you can override certain functions (those wrapped |
|
10 |
* in a function_exists() call) by defining them first in your child theme's |
|
11 |
* functions.php file. The child theme's functions.php file is included before |
|
12 |
* the parent theme's file, so the child theme functions would be used. |
|
13 |
* |
|
14 |
* @link https://codex.wordpress.org/Theme_Development |
|
15 |
* @link https://codex.wordpress.org/Child_Themes |
|
16 |
* |
|
17 |
* Functions that are not pluggable (not wrapped in function_exists()) are |
|
18 |
* instead attached to a filter or action hook. |
|
19 |
* |
|
20 |
* For more information on hooks, actions, and filters, |
|
21 |
* {@link https://codex.wordpress.org/Plugin_API} |
|
22 |
* |
|
23 |
* @package WordPress |
|
24 |
* @subpackage Twenty_Fifteen |
|
25 |
* @since Twenty Fifteen 1.0 |
|
26 |
*/ |
|
27 |
||
28 |
/** |
|
29 |
* Set the content width based on the theme's design and stylesheet. |
|
30 |
* |
|
31 |
* @since Twenty Fifteen 1.0 |
|
32 |
*/ |
|
33 |
if ( ! isset( $content_width ) ) { |
|
34 |
$content_width = 660; |
|
35 |
} |
|
36 |
||
37 |
/** |
|
38 |
* Twenty Fifteen only works in WordPress 4.1 or later. |
|
39 |
*/ |
|
40 |
if ( version_compare( $GLOBALS['wp_version'], '4.1-alpha', '<' ) ) { |
|
41 |
require get_template_directory() . '/inc/back-compat.php'; |
|
42 |
} |
|
43 |
||
44 |
if ( ! function_exists( 'twentyfifteen_setup' ) ) : |
|
45 |
/** |
|
46 |
* Sets up theme defaults and registers support for various WordPress features. |
|
47 |
* |
|
48 |
* Note that this function is hooked into the after_setup_theme hook, which |
|
49 |
* runs before the init hook. The init hook is too late for some features, such |
|
50 |
* as indicating support for post thumbnails. |
|
51 |
* |
|
52 |
* @since Twenty Fifteen 1.0 |
|
53 |
*/ |
|
54 |
function twentyfifteen_setup() { |
|
55 |
||
56 |
/* |
|
57 |
* Make theme available for translation. |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
58 |
* Translations can be filed at WordPress.org. See: https://translate.wordpress.org/projects/wp-themes/twentyfifteen |
5 | 59 |
* If you're building a theme based on twentyfifteen, use a find and replace |
60 |
* to change 'twentyfifteen' to the name of your theme in all the template files |
|
61 |
*/ |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
62 |
load_theme_textdomain( 'twentyfifteen' ); |
5 | 63 |
|
64 |
// Add default posts and comments RSS feed links to head. |
|
65 |
add_theme_support( 'automatic-feed-links' ); |
|
66 |
||
67 |
/* |
|
68 |
* Let WordPress manage the document title. |
|
69 |
* By adding theme support, we declare that this theme does not use a |
|
70 |
* hard-coded <title> tag in the document head, and expect WordPress to |
|
71 |
* provide it for us. |
|
72 |
*/ |
|
73 |
add_theme_support( 'title-tag' ); |
|
74 |
||
75 |
/* |
|
76 |
* Enable support for Post Thumbnails on posts and pages. |
|
77 |
* |
|
78 |
* See: https://codex.wordpress.org/Function_Reference/add_theme_support#Post_Thumbnails |
|
79 |
*/ |
|
80 |
add_theme_support( 'post-thumbnails' ); |
|
81 |
set_post_thumbnail_size( 825, 510, true ); |
|
82 |
||
83 |
// This theme uses wp_nav_menu() in two locations. |
|
84 |
register_nav_menus( array( |
|
85 |
'primary' => __( 'Primary Menu', 'twentyfifteen' ), |
|
86 |
'social' => __( 'Social Links Menu', 'twentyfifteen' ), |
|
87 |
) ); |
|
88 |
||
89 |
/* |
|
90 |
* Switch default core markup for search form, comment form, and comments |
|
91 |
* to output valid HTML5. |
|
92 |
*/ |
|
93 |
add_theme_support( 'html5', array( |
|
94 |
'search-form', 'comment-form', 'comment-list', 'gallery', 'caption' |
|
95 |
) ); |
|
96 |
||
97 |
/* |
|
98 |
* Enable support for Post Formats. |
|
99 |
* |
|
100 |
* See: https://codex.wordpress.org/Post_Formats |
|
101 |
*/ |
|
102 |
add_theme_support( 'post-formats', array( |
|
103 |
'aside', 'image', 'video', 'quote', 'link', 'gallery', 'status', 'audio', 'chat' |
|
104 |
) ); |
|
105 |
||
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
106 |
/* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
107 |
* Enable support for custom logo. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
108 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
109 |
* @since Twenty Fifteen 1.5 |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
110 |
*/ |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
111 |
add_theme_support( 'custom-logo', array( |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
112 |
'height' => 248, |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
113 |
'width' => 248, |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
114 |
'flex-height' => true, |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
115 |
) ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
116 |
|
5 | 117 |
$color_scheme = twentyfifteen_get_color_scheme(); |
118 |
$default_color = trim( $color_scheme[0], '#' ); |
|
119 |
||
120 |
// Setup the WordPress core custom background feature. |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
121 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
122 |
/** |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
123 |
* Filter Twenty Fifteen custom-header support arguments. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
124 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
125 |
* @since Twenty Fifteen 1.0 |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
126 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
127 |
* @param array $args { |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
128 |
* An array of custom-header support arguments. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
129 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
130 |
* @type string $default-color Default color of the header. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
131 |
* @type string $default-attachment Default attachment of the header. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
132 |
* } |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
133 |
*/ |
5 | 134 |
add_theme_support( 'custom-background', apply_filters( 'twentyfifteen_custom_background_args', array( |
135 |
'default-color' => $default_color, |
|
136 |
'default-attachment' => 'fixed', |
|
137 |
) ) ); |
|
138 |
||
139 |
/* |
|
140 |
* This theme styles the visual editor to resemble the theme style, |
|
141 |
* specifically font, colors, icons, and column width. |
|
142 |
*/ |
|
143 |
add_editor_style( array( 'css/editor-style.css', 'genericons/genericons.css', twentyfifteen_fonts_url() ) ); |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
144 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
145 |
// Indicate widget sidebars can use selective refresh in the Customizer. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
146 |
add_theme_support( 'customize-selective-refresh-widgets' ); |
5 | 147 |
} |
148 |
endif; // twentyfifteen_setup |
|
149 |
add_action( 'after_setup_theme', 'twentyfifteen_setup' ); |
|
150 |
||
151 |
/** |
|
152 |
* Register widget area. |
|
153 |
* |
|
154 |
* @since Twenty Fifteen 1.0 |
|
155 |
* |
|
156 |
* @link https://codex.wordpress.org/Function_Reference/register_sidebar |
|
157 |
*/ |
|
158 |
function twentyfifteen_widgets_init() { |
|
159 |
register_sidebar( array( |
|
160 |
'name' => __( 'Widget Area', 'twentyfifteen' ), |
|
161 |
'id' => 'sidebar-1', |
|
162 |
'description' => __( 'Add widgets here to appear in your sidebar.', 'twentyfifteen' ), |
|
163 |
'before_widget' => '<aside id="%1$s" class="widget %2$s">', |
|
164 |
'after_widget' => '</aside>', |
|
165 |
'before_title' => '<h2 class="widget-title">', |
|
166 |
'after_title' => '</h2>', |
|
167 |
) ); |
|
168 |
} |
|
169 |
add_action( 'widgets_init', 'twentyfifteen_widgets_init' ); |
|
170 |
||
171 |
if ( ! function_exists( 'twentyfifteen_fonts_url' ) ) : |
|
172 |
/** |
|
173 |
* Register Google fonts for Twenty Fifteen. |
|
174 |
* |
|
175 |
* @since Twenty Fifteen 1.0 |
|
176 |
* |
|
177 |
* @return string Google fonts URL for the theme. |
|
178 |
*/ |
|
179 |
function twentyfifteen_fonts_url() { |
|
180 |
$fonts_url = ''; |
|
181 |
$fonts = array(); |
|
182 |
$subsets = 'latin,latin-ext'; |
|
183 |
||
184 |
/* |
|
185 |
* Translators: If there are characters in your language that are not supported |
|
186 |
* by Noto Sans, translate this to 'off'. Do not translate into your own language. |
|
187 |
*/ |
|
188 |
if ( 'off' !== _x( 'on', 'Noto Sans font: on or off', 'twentyfifteen' ) ) { |
|
189 |
$fonts[] = 'Noto Sans:400italic,700italic,400,700'; |
|
190 |
} |
|
191 |
||
192 |
/* |
|
193 |
* Translators: If there are characters in your language that are not supported |
|
194 |
* by Noto Serif, translate this to 'off'. Do not translate into your own language. |
|
195 |
*/ |
|
196 |
if ( 'off' !== _x( 'on', 'Noto Serif font: on or off', 'twentyfifteen' ) ) { |
|
197 |
$fonts[] = 'Noto Serif:400italic,700italic,400,700'; |
|
198 |
} |
|
199 |
||
200 |
/* |
|
201 |
* Translators: If there are characters in your language that are not supported |
|
202 |
* by Inconsolata, translate this to 'off'. Do not translate into your own language. |
|
203 |
*/ |
|
204 |
if ( 'off' !== _x( 'on', 'Inconsolata font: on or off', 'twentyfifteen' ) ) { |
|
205 |
$fonts[] = 'Inconsolata:400,700'; |
|
206 |
} |
|
207 |
||
208 |
/* |
|
209 |
* Translators: To add an additional character subset specific to your language, |
|
210 |
* translate this to 'greek', 'cyrillic', 'devanagari' or 'vietnamese'. Do not translate into your own language. |
|
211 |
*/ |
|
212 |
$subset = _x( 'no-subset', 'Add new subset (greek, cyrillic, devanagari, vietnamese)', 'twentyfifteen' ); |
|
213 |
||
214 |
if ( 'cyrillic' == $subset ) { |
|
215 |
$subsets .= ',cyrillic,cyrillic-ext'; |
|
216 |
} elseif ( 'greek' == $subset ) { |
|
217 |
$subsets .= ',greek,greek-ext'; |
|
218 |
} elseif ( 'devanagari' == $subset ) { |
|
219 |
$subsets .= ',devanagari'; |
|
220 |
} elseif ( 'vietnamese' == $subset ) { |
|
221 |
$subsets .= ',vietnamese'; |
|
222 |
} |
|
223 |
||
224 |
if ( $fonts ) { |
|
225 |
$fonts_url = add_query_arg( array( |
|
226 |
'family' => urlencode( implode( '|', $fonts ) ), |
|
227 |
'subset' => urlencode( $subsets ), |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
228 |
), 'https://fonts.googleapis.com/css' ); |
5 | 229 |
} |
230 |
||
231 |
return $fonts_url; |
|
232 |
} |
|
233 |
endif; |
|
234 |
||
235 |
/** |
|
236 |
* JavaScript Detection. |
|
237 |
* |
|
238 |
* Adds a `js` class to the root `<html>` element when JavaScript is detected. |
|
239 |
* |
|
240 |
* @since Twenty Fifteen 1.1 |
|
241 |
*/ |
|
242 |
function twentyfifteen_javascript_detection() { |
|
243 |
echo "<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>\n"; |
|
244 |
} |
|
245 |
add_action( 'wp_head', 'twentyfifteen_javascript_detection', 0 ); |
|
246 |
||
247 |
/** |
|
248 |
* Enqueue scripts and styles. |
|
249 |
* |
|
250 |
* @since Twenty Fifteen 1.0 |
|
251 |
*/ |
|
252 |
function twentyfifteen_scripts() { |
|
253 |
// Add custom fonts, used in the main stylesheet. |
|
254 |
wp_enqueue_style( 'twentyfifteen-fonts', twentyfifteen_fonts_url(), array(), null ); |
|
255 |
||
256 |
// Add Genericons, used in the main stylesheet. |
|
257 |
wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.2' ); |
|
258 |
||
259 |
// Load our main stylesheet. |
|
260 |
wp_enqueue_style( 'twentyfifteen-style', get_stylesheet_uri() ); |
|
261 |
||
262 |
// Load the Internet Explorer specific stylesheet. |
|
263 |
wp_enqueue_style( 'twentyfifteen-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentyfifteen-style' ), '20141010' ); |
|
264 |
wp_style_add_data( 'twentyfifteen-ie', 'conditional', 'lt IE 9' ); |
|
265 |
||
266 |
// Load the Internet Explorer 7 specific stylesheet. |
|
267 |
wp_enqueue_style( 'twentyfifteen-ie7', get_template_directory_uri() . '/css/ie7.css', array( 'twentyfifteen-style' ), '20141010' ); |
|
268 |
wp_style_add_data( 'twentyfifteen-ie7', 'conditional', 'lt IE 8' ); |
|
269 |
||
270 |
wp_enqueue_script( 'twentyfifteen-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20141010', true ); |
|
271 |
||
272 |
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { |
|
273 |
wp_enqueue_script( 'comment-reply' ); |
|
274 |
} |
|
275 |
||
276 |
if ( is_singular() && wp_attachment_is_image() ) { |
|
277 |
wp_enqueue_script( 'twentyfifteen-keyboard-image-navigation', get_template_directory_uri() . '/js/keyboard-image-navigation.js', array( 'jquery' ), '20141010' ); |
|
278 |
} |
|
279 |
||
280 |
wp_enqueue_script( 'twentyfifteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20150330', true ); |
|
281 |
wp_localize_script( 'twentyfifteen-script', 'screenReaderText', array( |
|
282 |
'expand' => '<span class="screen-reader-text">' . __( 'expand child menu', 'twentyfifteen' ) . '</span>', |
|
283 |
'collapse' => '<span class="screen-reader-text">' . __( 'collapse child menu', 'twentyfifteen' ) . '</span>', |
|
284 |
) ); |
|
285 |
} |
|
286 |
add_action( 'wp_enqueue_scripts', 'twentyfifteen_scripts' ); |
|
287 |
||
288 |
/** |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
289 |
* Add preconnect for Google Fonts. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
290 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
291 |
* @since Twenty Fifteen 1.7 |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
292 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
293 |
* @param array $urls URLs to print for resource hints. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
294 |
* @param string $relation_type The relation type the URLs are printed. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
295 |
* @return array URLs to print for resource hints. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
296 |
*/ |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
297 |
function twentyfifteen_resource_hints( $urls, $relation_type ) { |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
298 |
if ( wp_style_is( 'twentyfifteen-fonts', 'queue' ) && 'preconnect' === $relation_type ) { |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
299 |
if ( version_compare( $GLOBALS['wp_version'], '4.7-alpha', '>=' ) ) { |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
300 |
$urls[] = array( |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
301 |
'href' => 'https://fonts.gstatic.com', |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
302 |
'crossorigin', |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
303 |
); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
304 |
} else { |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
305 |
$urls[] = 'https://fonts.gstatic.com'; |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
306 |
} |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
307 |
} |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
308 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
309 |
return $urls; |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
310 |
} |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
311 |
add_filter( 'wp_resource_hints', 'twentyfifteen_resource_hints', 10, 2 ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
312 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
313 |
/** |
5 | 314 |
* Add featured image as background image to post navigation elements. |
315 |
* |
|
316 |
* @since Twenty Fifteen 1.0 |
|
317 |
* |
|
318 |
* @see wp_add_inline_style() |
|
319 |
*/ |
|
320 |
function twentyfifteen_post_nav_background() { |
|
321 |
if ( ! is_single() ) { |
|
322 |
return; |
|
323 |
} |
|
324 |
||
325 |
$previous = ( is_attachment() ) ? get_post( get_post()->post_parent ) : get_adjacent_post( false, '', true ); |
|
326 |
$next = get_adjacent_post( false, '', false ); |
|
327 |
$css = ''; |
|
328 |
||
329 |
if ( is_attachment() && 'attachment' == $previous->post_type ) { |
|
330 |
return; |
|
331 |
} |
|
332 |
||
333 |
if ( $previous && has_post_thumbnail( $previous->ID ) ) { |
|
334 |
$prevthumb = wp_get_attachment_image_src( get_post_thumbnail_id( $previous->ID ), 'post-thumbnail' ); |
|
335 |
$css .= ' |
|
336 |
.post-navigation .nav-previous { background-image: url(' . esc_url( $prevthumb[0] ) . '); } |
|
337 |
.post-navigation .nav-previous .post-title, .post-navigation .nav-previous a:hover .post-title, .post-navigation .nav-previous .meta-nav { color: #fff; } |
|
338 |
.post-navigation .nav-previous a:before { background-color: rgba(0, 0, 0, 0.4); } |
|
339 |
'; |
|
340 |
} |
|
341 |
||
342 |
if ( $next && has_post_thumbnail( $next->ID ) ) { |
|
343 |
$nextthumb = wp_get_attachment_image_src( get_post_thumbnail_id( $next->ID ), 'post-thumbnail' ); |
|
344 |
$css .= ' |
|
345 |
.post-navigation .nav-next { background-image: url(' . esc_url( $nextthumb[0] ) . '); border-top: 0; } |
|
346 |
.post-navigation .nav-next .post-title, .post-navigation .nav-next a:hover .post-title, .post-navigation .nav-next .meta-nav { color: #fff; } |
|
347 |
.post-navigation .nav-next a:before { background-color: rgba(0, 0, 0, 0.4); } |
|
348 |
'; |
|
349 |
} |
|
350 |
||
351 |
wp_add_inline_style( 'twentyfifteen-style', $css ); |
|
352 |
} |
|
353 |
add_action( 'wp_enqueue_scripts', 'twentyfifteen_post_nav_background' ); |
|
354 |
||
355 |
/** |
|
356 |
* Display descriptions in main navigation. |
|
357 |
* |
|
358 |
* @since Twenty Fifteen 1.0 |
|
359 |
* |
|
360 |
* @param string $item_output The menu item output. |
|
361 |
* @param WP_Post $item Menu item object. |
|
362 |
* @param int $depth Depth of the menu. |
|
363 |
* @param array $args wp_nav_menu() arguments. |
|
364 |
* @return string Menu item with possible description. |
|
365 |
*/ |
|
366 |
function twentyfifteen_nav_description( $item_output, $item, $depth, $args ) { |
|
367 |
if ( 'primary' == $args->theme_location && $item->description ) { |
|
368 |
$item_output = str_replace( $args->link_after . '</a>', '<div class="menu-item-description">' . $item->description . '</div>' . $args->link_after . '</a>', $item_output ); |
|
369 |
} |
|
370 |
||
371 |
return $item_output; |
|
372 |
} |
|
373 |
add_filter( 'walker_nav_menu_start_el', 'twentyfifteen_nav_description', 10, 4 ); |
|
374 |
||
375 |
/** |
|
376 |
* Add a `screen-reader-text` class to the search form's submit button. |
|
377 |
* |
|
378 |
* @since Twenty Fifteen 1.0 |
|
379 |
* |
|
380 |
* @param string $html Search form HTML. |
|
381 |
* @return string Modified search form HTML. |
|
382 |
*/ |
|
383 |
function twentyfifteen_search_form_modify( $html ) { |
|
384 |
return str_replace( 'class="search-submit"', 'class="search-submit screen-reader-text"', $html ); |
|
385 |
} |
|
386 |
add_filter( 'get_search_form', 'twentyfifteen_search_form_modify' ); |
|
387 |
||
388 |
/** |
|
7
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
389 |
* Modifies tag cloud widget arguments to display all tags in the same font size |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
390 |
* and use list format for better accessibility. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
391 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
392 |
* @since Twenty Fifteen 1.9 |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
393 |
* |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
394 |
* @param array $args Arguments for tag cloud widget. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
395 |
* @return array The filtered arguments for tag cloud widget. |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
396 |
*/ |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
397 |
function twentyfifteen_widget_tag_cloud_args( $args ) { |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
398 |
$args['largest'] = 22; |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
399 |
$args['smallest'] = 8; |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
400 |
$args['unit'] = 'pt'; |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
401 |
$args['format'] = 'list'; |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
402 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
403 |
return $args; |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
404 |
} |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
405 |
add_filter( 'widget_tag_cloud_args', 'twentyfifteen_widget_tag_cloud_args' ); |
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
406 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
407 |
|
cf61fcea0001
resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents:
5
diff
changeset
|
408 |
/** |
5 | 409 |
* Implement the Custom Header feature. |
410 |
* |
|
411 |
* @since Twenty Fifteen 1.0 |
|
412 |
*/ |
|
413 |
require get_template_directory() . '/inc/custom-header.php'; |
|
414 |
||
415 |
/** |
|
416 |
* Custom template tags for this theme. |
|
417 |
* |
|
418 |
* @since Twenty Fifteen 1.0 |
|
419 |
*/ |
|
420 |
require get_template_directory() . '/inc/template-tags.php'; |
|
421 |
||
422 |
/** |
|
423 |
* Customizer additions. |
|
424 |
* |
|
425 |
* @since Twenty Fifteen 1.0 |
|
426 |
*/ |
|
427 |
require get_template_directory() . '/inc/customizer.php'; |