Changeset 38985 for trunk/src/wp-includes/theme.php
- Timestamp:
- 10/27/2016 09:50:56 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/theme.php
r38948 r38985 1265 1265 'width' => get_theme_support( 'custom-header', 'width' ), 1266 1266 'height' => get_theme_support( 'custom-header', 'height' ), 1267 'video' => get_theme_support( 'custom-header', 'video' ), 1267 1268 ); 1268 1269 return (object) wp_parse_args( $data, $default ); … … 1308 1309 } else { 1309 1310 return false; 1311 } 1312 } 1313 1314 /** 1315 * Check whether a header video is set or not. 1316 * 1317 * @since 4.7.0 1318 * 1319 * @see get_header_video_url() 1320 * 1321 * @return bool Whether a header video is set or not. 1322 */ 1323 function has_header_video() { 1324 return (bool) get_header_video_url(); 1325 } 1326 1327 /* Retrieve header video URL for custom header. 1328 * 1329 * Uses a local video if present, or falls back to an external video. Returns false if there is no video. 1330 * 1331 * @since 4.7.0 1332 * 1333 * @return string|false 1334 */ 1335 function get_header_video_url() { 1336 $id = absint( get_theme_mod( 'header_video' ) ); 1337 $url = esc_url( get_theme_mod( 'external_header_video' ) ); 1338 1339 if ( ! $id && ! $url ) { 1340 return false; 1341 } 1342 1343 if ( $id ) { 1344 // Get the file URL from the attachment ID. 1345 $url = wp_get_attachment_url( $id ); 1346 } 1347 1348 return esc_url_raw( set_url_scheme( $url ) ); 1349 } 1350 1351 /** 1352 * Display header video URL. 1353 * 1354 * @since 4.7.0 1355 */ 1356 function the_header_video_url() { 1357 $video = get_header_video_url(); 1358 if ( $video ) { 1359 echo esc_url( $video ); 1360 } 1361 } 1362 1363 /** 1364 * Retrieve header video settings. 1365 * 1366 * @since 4.7.0 1367 * 1368 * @return array 1369 */ 1370 function get_header_video_settings() { 1371 $header = get_custom_header(); 1372 $video_url = get_header_video_url(); 1373 $video_type = wp_check_filetype( $video_url, wp_get_mime_types() ); 1374 1375 $settings = array( 1376 'mimeType' => '', 1377 'posterUrl' => get_header_image(), 1378 'videoUrl' => $video_url, 1379 'width' => absint( $header->width ), 1380 'height' => absint( $header->height ), 1381 'minWidth' => 900, 1382 'minHeight' => 500, 1383 ); 1384 1385 if ( preg_match( '#^https?://(?:www\.)?(?:youtube\.com/watch|youtu\.be/)#', $video_url ) ) { 1386 $settings['mimeType'] = 'video/x-youtube'; 1387 } elseif ( preg_match( '#^https?://(.+\.)?vimeo\.com/.*#', $video_url ) ) { 1388 $settings['mimeType'] = 'video/x-vimeo'; 1389 } elseif ( ! empty( $video_type['type'] ) ) { 1390 $settings['mimeType'] = $video_type['type']; 1391 } 1392 1393 return apply_filters( 'header_video_settings', $settings ); 1394 } 1395 1396 /** 1397 * Check whether a custom header is set or not. 1398 * 1399 * @since 4.7.0 1400 * 1401 * @return bool True if a custom header is set. False if not. 1402 */ 1403 function has_custom_header() { 1404 if ( has_header_image() || ( is_front_page() && has_header_video() ) ) { 1405 return true; 1406 } 1407 1408 return false; 1409 } 1410 1411 /** 1412 * Retrieve the markup for a custom header. 1413 * 1414 * @since 4.7.0 1415 * 1416 * @return string|false The markup for a custom header on success. False if not. 1417 */ 1418 function get_custom_header_markup() { 1419 if ( ! has_custom_header() ) { 1420 return false; 1421 } 1422 1423 return sprintf( 1424 '<div id="wp-custom-header" class="wp-custom-header">%s</div>', 1425 get_header_image_tag() 1426 ); 1427 } 1428 1429 /** 1430 * Print the markup for a custom header. 1431 * 1432 * @since 4.7.0 1433 */ 1434 function the_custom_header_markup() { 1435 if ( ! $custom_header = get_custom_header_markup() ) { 1436 return; 1437 } 1438 echo $custom_header; 1439 1440 if ( has_header_video() && is_front_page() ) { 1441 wp_enqueue_script( 'wp-custom-header' ); 1442 wp_localize_script( 'wp-custom-header', '_wpCustomHeaderSettings', get_header_video_settings() ); 1310 1443 } 1311 1444 } … … 1733 1866 'admin-head-callback' => '', 1734 1867 'admin-preview-callback' => '', 1868 'video' => false, 1735 1869 ); 1736 1870
Note: See TracChangeset
for help on using the changeset viewer.