1
|
|
|
<?php |
2
|
|
|
/** |
3
|
|
|
* Content Options. |
4
|
|
|
* |
5
|
|
|
* This feature will only be activated for themes that declare their support. |
6
|
|
|
* This can be done by adding code similar to the following during the |
7
|
|
|
* 'after_setup_theme' action: |
8
|
|
|
* |
9
|
|
|
add_theme_support( 'jetpack-content-options', array( |
10
|
|
|
'blog-display' => 'content', // the default setting of the theme: 'content', 'excerpt' or array( 'content', 'excerpt' ) for themes mixing both display. |
11
|
|
|
'author-bio' => true, // display or not the author bio: true or false. |
12
|
|
|
'author-bio-default' => false, // the default setting of the author bio, if it's being displayed or not: true or false (only required if false). |
13
|
|
|
'masonry' => '.site-main', // a CSS selector matching the elements that triggers a masonry refresh if the theme is using a masonry layout. |
14
|
|
|
'post-details' => array( |
15
|
|
|
'stylesheet' => 'themeslug-style', // name of the theme's stylesheet. |
16
|
|
|
'date' => '.posted-on', // a CSS selector matching the elements that display the post date. |
17
|
|
|
'categories' => '.cat-links', // a CSS selector matching the elements that display the post categories. |
18
|
|
|
'tags' => '.tags-links', // a CSS selector matching the elements that display the post tags. |
19
|
|
|
'author' => '.byline', // a CSS selector matching the elements that display the post author. |
20
|
|
|
'comment' => '.comments-link', // a CSS selector matching the elements that display the comment link. |
21
|
|
|
), |
22
|
|
|
'featured-images' => array( |
23
|
|
|
'archive' => true, // enable or not the featured image check for archive pages: true or false. |
24
|
|
|
'archive-default' => false, // the default setting of the featured image on archive pages, if it's being displayed or not: true or false (only required if false). |
25
|
|
|
'post' => true, // enable or not the featured image check for single posts: true or false. |
26
|
|
|
'post-default' => false, // the default setting of the featured image on single posts, if it's being displayed or not: true or false (only required if false). |
27
|
|
|
'page' => true, // enable or not the featured image check for single pages: true or false. |
28
|
|
|
'page-default' => false, // the default setting of the featured image on single pages, if it's being displayed or not: true or false (only required if false). |
29
|
|
|
'fallback' => true, // enable or not the featured image fallback: true or false. |
30
|
|
|
'fallback-default' => true, // the default setting for featured image fallbacks: true or false (only required if false) |
31
|
|
|
), |
32
|
|
|
) ); |
33
|
|
|
* |
34
|
|
|
*/ |
35
|
|
|
|
36
|
|
|
/** |
37
|
|
|
* Activate the Content Options plugin. |
38
|
|
|
* |
39
|
|
|
* @uses current_theme_supports() |
40
|
|
|
*/ |
41
|
|
|
function jetpack_content_options_init() { |
42
|
|
|
// If the theme doesn't support 'jetpack-content-options', don't continue. |
43
|
|
|
if ( ! current_theme_supports( 'jetpack-content-options' ) ) { |
44
|
|
|
return; |
45
|
|
|
} |
46
|
|
|
|
47
|
|
|
// Load the Customizer options. |
48
|
|
|
require( dirname( __FILE__ ) . '/content-options/customizer.php' ); |
49
|
|
|
|
50
|
|
|
// Load Blog Display function. |
51
|
|
|
require( dirname( __FILE__ ) . '/content-options/blog-display.php' ); |
52
|
|
|
|
53
|
|
|
// Load Author Bio function. |
54
|
|
|
require( dirname( __FILE__ ) . '/content-options/author-bio.php' ); |
55
|
|
|
|
56
|
|
|
// Load Post Details function. |
57
|
|
|
require( dirname( __FILE__ ) . '/content-options/post-details.php' ); |
58
|
|
|
|
59
|
|
|
// Load Featured Images function. |
60
|
|
|
if ( jetpack_featured_images_should_load() ) { |
61
|
|
|
require( dirname( __FILE__ ) . '/content-options/featured-images.php' ); |
62
|
|
|
} |
63
|
|
|
|
64
|
|
|
// Load Featured Images Fallback function. |
65
|
|
|
if ( jetpack_featured_images_fallback_should_load() ) { |
66
|
|
|
require( dirname( __FILE__ ) . '/content-options/featured-images-fallback.php' ); |
67
|
|
|
} |
68
|
|
|
} |
69
|
|
|
add_action( 'init', 'jetpack_content_options_init' ); |
70
|
|
|
|
71
|
|
|
function jetpack_featured_images_get_settings() { |
72
|
|
|
$options = get_theme_support( 'jetpack-content-options' ); |
|
|
|
|
73
|
|
|
|
74
|
|
|
$featured_images = ( ! empty( $options[0]['featured-images'] ) ) ? $options[0]['featured-images'] : null; |
75
|
|
|
|
76
|
|
|
$settings = array( |
|
|
|
|
77
|
|
|
'archive' => ( ! empty( $featured_images['archive'] ) ) ? $featured_images['archive'] : null, |
78
|
|
|
'post' => ( ! empty( $featured_images['post'] ) ) ? $featured_images['post'] : null, |
79
|
|
|
'page' => ( ! empty( $featured_images['page'] ) ) ? $featured_images['page'] : null, |
80
|
|
|
'archive-default' => ( isset( $featured_images['archive-default'] ) && false === $featured_images['archive-default'] ) ? '' : 1, |
81
|
|
|
'post-default' => ( isset( $featured_images['post-default'] ) && false === $featured_images['post-default'] ) ? '' : 1, |
82
|
|
|
'page-default' => ( isset( $featured_images['page-default'] ) && false === $featured_images['page-default'] ) ? '' : 1, |
83
|
|
|
'fallback' => ( ! empty( $featured_images['fallback'] ) ) ? $featured_images['fallback'] : null, |
84
|
|
|
'fallback-default' => ( isset( $featured_images['fallback-default'] ) && false === $featured_images['fallback-default'] ) ? '' : 1, |
85
|
|
|
); |
86
|
|
|
|
87
|
|
|
$settings = array_merge( $settings, array( |
|
|
|
|
88
|
|
|
'archive-option' => get_option( 'jetpack_content_featured_images_archive', $settings['archive-default'] ), |
89
|
|
|
'post-option' => get_option( 'jetpack_content_featured_images_post', $settings['post-default'] ), |
90
|
|
|
'page-option' => get_option( 'jetpack_content_featured_images_page', $settings['page-default'] ), |
91
|
|
|
'fallback-option' => get_option( 'jetpack_content_featured_images_fallback', $settings['fallback-default'] ), |
92
|
|
|
) ); |
93
|
|
|
|
94
|
|
|
return $settings; |
95
|
|
|
} |
96
|
|
|
|
97
|
|
|
function jetpack_featured_images_should_load() { |
98
|
|
|
// If the theme doesn't support post thumbnails, don't continue. |
99
|
|
|
if ( ! current_theme_supports( 'post-thumbnails' ) ) { |
100
|
|
|
return false; |
101
|
|
|
} |
102
|
|
|
|
103
|
|
|
$opts = jetpack_featured_images_get_settings(); |
104
|
|
|
|
105
|
|
|
// If the theme doesn't support archive, post and page or if all the options are ticked and we aren't in the customizer, don't continue. |
106
|
|
|
if ( |
107
|
|
|
( true !== $opts['archive'] && true !== $opts['post'] && true !== $opts['page'] ) |
108
|
|
|
|| ( 1 === $opts['archive-option'] && 1 === $opts['post-option'] && 1 === $opts['page-option'] && ! is_customize_preview() ) |
109
|
|
|
) { |
110
|
|
|
return false; |
111
|
|
|
} |
112
|
|
|
|
113
|
|
|
return true; |
114
|
|
|
} |
115
|
|
|
|
116
|
|
|
function jetpack_featured_images_fallback_should_load() { |
117
|
|
|
// If the theme doesn't support post thumbnails, don't continue. |
118
|
|
|
if ( ! current_theme_supports( 'post-thumbnails' ) ) { |
119
|
|
|
return false; |
120
|
|
|
} |
121
|
|
|
|
122
|
|
|
$opts = jetpack_featured_images_get_settings(); |
123
|
|
|
|
124
|
|
|
// If the theme doesn't support fallback, don't continue. |
125
|
|
|
if ( true !== $opts['fallback'] ) { |
126
|
|
|
return false; |
127
|
|
|
} |
128
|
|
|
|
129
|
|
|
return true; |
130
|
|
|
} |
131
|
|
|
|
This check looks for improperly formatted assignments.
Every assignment must have exactly one space before and one space after the equals operator.
To illustrate:
will have no issues, while
will report issues in lines 1 and 2.