Version Description
- Fix: Always set std as value for hidden field
- Fix:
rwmb_meta
now can display rich content fromoembed
field - Fix: Wrong format for
datetime
field - Fix: Check and reset clone index when add/remove/sort clones
- Improvement: Optionally display ID attribute for heading and divider
- Improvement: Adding new style to date field to match WordPress style
- Improvement: Change saving hooks to specific post types to prevent saving images to wrong post
Download this release
Release Info
Developer | rilwis |
Plugin | Meta Box |
Version | 4.5.7 |
Comparing to | |
See all releases |
Code changes from version 4.5.6 to 4.5.7
- css/datepicker.css +208 -0
- css/style.css +2 -1
- inc/fields/date.php +2 -1
- inc/fields/datetime.php +3 -2
- inc/fields/divider.php +2 -1
- inc/fields/heading.php +2 -1
- inc/fields/hidden.php +2 -2
- inc/helpers.php +6 -0
- inc/meta-box.php +15 -7
- js/clone.js +151 -127
- meta-box.php +4 -2
- readme.txt +42 -27
css/datepicker.css
ADDED
@@ -0,0 +1,208 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Date Picker Default Styles */
|
2 |
+
.ui-datepicker {
|
3 |
+
padding: 0;
|
4 |
+
border: 1px solid #ddd;
|
5 |
+
-webkit-border-radius: 0;
|
6 |
+
-moz-border-radius: 0;
|
7 |
+
border-radius: 0;
|
8 |
+
}
|
9 |
+
.ui-datepicker * {
|
10 |
+
padding: 0;
|
11 |
+
font-family: "Open Sans", sans-serif;
|
12 |
+
-webkit-border-radius: 0;
|
13 |
+
-moz-border-radius: 0;
|
14 |
+
border-radius: 0;
|
15 |
+
}
|
16 |
+
.ui-datepicker table {
|
17 |
+
font-size: 13px;
|
18 |
+
margin: 0;
|
19 |
+
}
|
20 |
+
.ui-datepicker .ui-datepicker-header {
|
21 |
+
border: none;
|
22 |
+
background: #23282d;
|
23 |
+
color: #fff;
|
24 |
+
font-weight: normal;
|
25 |
+
}
|
26 |
+
.ui-datepicker .ui-datepicker-header .ui-state-hover {
|
27 |
+
background: #23282d;
|
28 |
+
border-color: transparent;
|
29 |
+
cursor: pointer;
|
30 |
+
-webkit-border-radius: 0;
|
31 |
+
-moz-border-radius: 0;
|
32 |
+
border-radius: 0;
|
33 |
+
}
|
34 |
+
.ui-datepicker thead {
|
35 |
+
background: #23282d;
|
36 |
+
color: #fff;
|
37 |
+
}
|
38 |
+
.ui-datepicker .ui-datepicker-title {
|
39 |
+
margin-top: .4em;
|
40 |
+
margin-bottom: .3em;
|
41 |
+
color: #fff;
|
42 |
+
font-size: 14px;
|
43 |
+
}
|
44 |
+
.ui-datepicker .ui-datepicker-prev-hover,
|
45 |
+
.ui-datepicker .ui-datepicker-next-hover,
|
46 |
+
.ui-datepicker .ui-datepicker-next,
|
47 |
+
.ui-datepicker .ui-datepicker-prev {
|
48 |
+
height: 1em;
|
49 |
+
top: .9em;
|
50 |
+
border: none;
|
51 |
+
}
|
52 |
+
.ui-datepicker .ui-datepicker-prev-hover {
|
53 |
+
left: 2px;
|
54 |
+
}
|
55 |
+
.ui-datepicker .ui-datepicker-next-hover {
|
56 |
+
right: 2px;
|
57 |
+
}
|
58 |
+
.ui-datepicker .ui-datepicker-next span,
|
59 |
+
.ui-datepicker .ui-datepicker-prev span {
|
60 |
+
background-image: url('data:image/png;base64,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');
|
61 |
+
background-position: -32px 0;
|
62 |
+
margin-top: 0;
|
63 |
+
top: 0;
|
64 |
+
font-weight: normal;
|
65 |
+
}
|
66 |
+
.ui-datepicker .ui-datepicker-prev span {
|
67 |
+
background-position: -96px 0;
|
68 |
+
}
|
69 |
+
.ui-datepicker th {
|
70 |
+
padding: 0.75em 0;
|
71 |
+
color: #fff;
|
72 |
+
font-weight: normal;
|
73 |
+
border: none;
|
74 |
+
border-top: 1px solid #32373c;
|
75 |
+
}
|
76 |
+
.ui-datepicker td {
|
77 |
+
background: #f1f1f1;
|
78 |
+
border: none;
|
79 |
+
padding: 0;
|
80 |
+
}
|
81 |
+
.ui-datepicker td .ui-state-default {
|
82 |
+
background: transparent;
|
83 |
+
border: none;
|
84 |
+
text-align: center;
|
85 |
+
padding: .5em;
|
86 |
+
margin: 0;
|
87 |
+
font-weight: normal;
|
88 |
+
color: #32373c;
|
89 |
+
}
|
90 |
+
.ui-datepicker td .ui-state-active,
|
91 |
+
.ui-datepicker td .ui-state-hover {
|
92 |
+
background: #0073aa;
|
93 |
+
color: #fff;
|
94 |
+
}
|
95 |
+
.ui-datepicker td.ui-state-disabled,
|
96 |
+
.ui-datepicker td.ui-state-disabled .ui-state-default {
|
97 |
+
opacity: 1;
|
98 |
+
color: #999;
|
99 |
+
}
|
100 |
+
/* Other Datepicker Color Schemes */
|
101 |
+
/* Blue */
|
102 |
+
.admin-color-blue .ui-datepicker .ui-datepicker-header,
|
103 |
+
.admin-color-blue .ui-datepicker .ui-datepicker-header .ui-state-hover,
|
104 |
+
.admin-color-blue .ui-datepicker thead {
|
105 |
+
background: #4796b3;
|
106 |
+
}
|
107 |
+
.admin-color-blue .ui-datepicker th {
|
108 |
+
border-color: #52accc;
|
109 |
+
}
|
110 |
+
.admin-color-blue .ui-datepicker td .ui-state-active,
|
111 |
+
.admin-color-blue .ui-datepicker td .ui-state-hover {
|
112 |
+
background: #096484;
|
113 |
+
}
|
114 |
+
/* Coffee */
|
115 |
+
.admin-color-coffee .ui-datepicker .ui-datepicker-header,
|
116 |
+
.admin-color-coffee .ui-datepicker .ui-datepicker-header .ui-state-hover,
|
117 |
+
.admin-color-coffee .ui-datepicker thead {
|
118 |
+
background: #46403c;
|
119 |
+
}
|
120 |
+
.admin-color-coffee .ui-datepicker th {
|
121 |
+
border-color: #59524c;
|
122 |
+
}
|
123 |
+
.admin-color-coffee .ui-datepicker td .ui-state-active,
|
124 |
+
.admin-color-coffee .ui-datepicker td .ui-state-hover {
|
125 |
+
background: #c7a589;
|
126 |
+
}
|
127 |
+
/* Ectoplasm */
|
128 |
+
.admin-color-ectoplasm .ui-datepicker .ui-datepicker-header,
|
129 |
+
.admin-color-ectoplasm .ui-datepicker .ui-datepicker-header .ui-state-hover,
|
130 |
+
.admin-color-ectoplasm .ui-datepicker thead {
|
131 |
+
background: #413256;
|
132 |
+
}
|
133 |
+
.admin-color-ectoplasm .ui-datepicker th {
|
134 |
+
border-color: #523f6d;
|
135 |
+
}
|
136 |
+
.admin-color-ectoplasm .ui-datepicker td .ui-state-active,
|
137 |
+
.admin-color-ectoplasm .ui-datepicker td .ui-state-hover {
|
138 |
+
background: #a3b745;
|
139 |
+
}
|
140 |
+
/* Midnight */
|
141 |
+
.admin-color-midnight .ui-datepicker .ui-datepicker-header,
|
142 |
+
.admin-color-midnight .ui-datepicker .ui-datepicker-header .ui-state-hover,
|
143 |
+
.admin-color-midnight .ui-datepicker thead {
|
144 |
+
background: #26292c;
|
145 |
+
}
|
146 |
+
.admin-color-midnight .ui-datepicker th {
|
147 |
+
border-color: #363b3f;
|
148 |
+
}
|
149 |
+
.admin-color-midnight .ui-datepicker td .ui-state-active,
|
150 |
+
.admin-color-midnight .ui-datepicker td .ui-state-hover {
|
151 |
+
background: #e14d43;
|
152 |
+
}
|
153 |
+
/* Ocean */
|
154 |
+
.admin-color-ocean .ui-datepicker .ui-datepicker-header,
|
155 |
+
.admin-color-ocean .ui-datepicker .ui-datepicker-header .ui-state-hover,
|
156 |
+
.admin-color-ocean .ui-datepicker thead {
|
157 |
+
background: #627c83;
|
158 |
+
}
|
159 |
+
.admin-color-ocean .ui-datepicker th {
|
160 |
+
border-color: #738e96;
|
161 |
+
}
|
162 |
+
.admin-color-ocean .ui-datepicker td .ui-state-active,
|
163 |
+
.admin-color-ocean .ui-datepicker td .ui-state-hover {
|
164 |
+
background: #9ebaa0;
|
165 |
+
}
|
166 |
+
/* Sunrise */
|
167 |
+
.admin-color-sunrise .ui-datepicker .ui-datepicker-header,
|
168 |
+
.admin-color-sunrise .ui-datepicker .ui-datepicker-header .ui-state-hover,
|
169 |
+
.admin-color-sunrise .ui-datepicker thead {
|
170 |
+
background: #be3631;
|
171 |
+
}
|
172 |
+
.admin-color-sunrise .ui-datepicker th {
|
173 |
+
border-color: #cf4944;
|
174 |
+
}
|
175 |
+
.admin-color-sunrise .ui-datepicker td .ui-state-active,
|
176 |
+
.admin-color-sunrise .ui-datepicker td .ui-state-hover {
|
177 |
+
background: #dd823b;
|
178 |
+
}
|
179 |
+
/* Light */
|
180 |
+
.admin-color-light .ui-datepicker .ui-datepicker-header,
|
181 |
+
.admin-color-light .ui-datepicker .ui-datepicker-header .ui-state-hover,
|
182 |
+
.admin-color-light .ui-datepicker thead {
|
183 |
+
background: #e5e5e5;
|
184 |
+
}
|
185 |
+
.admin-color-light .ui-datepicker td {
|
186 |
+
background: #fff;
|
187 |
+
}
|
188 |
+
.admin-color-light .ui-datepicker .ui-datepicker-next span,
|
189 |
+
.admin-color-light .ui-datepicker .ui-datepicker-prev span {
|
190 |
+
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAYAAADvl7rLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMUIxRjI2RjhCODYxMUUzQTEyNERCMDU1QzdBQ0EyMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxMUIxRjI3MDhCODYxMUUzQTEyNERCMDU1QzdBQ0EyMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjExQjFGMjZEOEI4NjExRTNBMTI0REIwNTVDN0FDQTIwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjExQjFGMjZFOEI4NjExRTNBMTI0REIwNTVDN0FDQTIwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+kKfR4AAAHcRJREFUeNrsXWuM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');
|
191 |
+
}
|
192 |
+
.admin-color-light .ui-datepicker th {
|
193 |
+
border-color: #fff;
|
194 |
+
}
|
195 |
+
.admin-color-light .ui-datepicker .ui-datepicker-title,
|
196 |
+
.admin-color-light .ui-datepicker td .ui-state-default,
|
197 |
+
.admin-color-light .ui-datepicker th {
|
198 |
+
color: #555;
|
199 |
+
}
|
200 |
+
.admin-color-light .ui-datepicker td .ui-state-active,
|
201 |
+
.admin-color-light .ui-datepicker td .ui-state-hover {
|
202 |
+
color: #fff;
|
203 |
+
background: #888;
|
204 |
+
}
|
205 |
+
.admin-color-light .ui-datepicker td.ui-state-disabled,
|
206 |
+
.admin-color-light .ui-datepicker td.ui-state-disabled .ui-state-default {
|
207 |
+
color: #ccc;
|
208 |
+
}
|
css/style.css
CHANGED
@@ -34,9 +34,10 @@
|
|
34 |
/* Clone */
|
35 |
.rwmb-clone {
|
36 |
min-height: 24px;
|
37 |
-
margin-bottom:
|
38 |
position: relative;
|
39 |
clear: both;
|
|
|
40 |
}
|
41 |
.rwmb-clone > input[type='radio'],
|
42 |
.rwmb-clone > input[type='checkbox'] {
|
34 |
/* Clone */
|
35 |
.rwmb-clone {
|
36 |
min-height: 24px;
|
37 |
+
margin-bottom: 10px;
|
38 |
position: relative;
|
39 |
clear: both;
|
40 |
+
background: #fff;
|
41 |
}
|
42 |
.rwmb-clone > input[type='radio'],
|
43 |
.rwmb-clone > input[type='checkbox'] {
|
inc/fields/date.php
CHANGED
@@ -16,7 +16,8 @@ if ( ! class_exists( 'RWMB_Date_Field' ) )
|
|
16 |
$url = RWMB_CSS_URL . 'jqueryui';
|
17 |
wp_register_style( 'jquery-ui-core', "{$url}/jquery.ui.core.css", array(), '1.8.17' );
|
18 |
wp_register_style( 'jquery-ui-theme', "{$url}/jquery.ui.theme.css", array(), '1.8.17' );
|
19 |
-
|
|
|
20 |
|
21 |
// Load localized scripts
|
22 |
$locale = str_replace( '_', '-', get_locale() );
|
16 |
$url = RWMB_CSS_URL . 'jqueryui';
|
17 |
wp_register_style( 'jquery-ui-core', "{$url}/jquery.ui.core.css", array(), '1.8.17' );
|
18 |
wp_register_style( 'jquery-ui-theme', "{$url}/jquery.ui.theme.css", array(), '1.8.17' );
|
19 |
+
wp_register_style( 'wp-datepicker', RWMB_CSS_URL ."datepicker.css", array( 'jquery-ui-core', 'jquery-ui-theme' ), '1.8.17' );
|
20 |
+
wp_enqueue_style( 'jquery-ui-datepicker', "{$url}/jquery.ui.datepicker.css", array( 'wp-datepicker' ), '1.8.17' );
|
21 |
|
22 |
// Load localized scripts
|
23 |
$locale = str_replace( '_', '-', get_locale() );
|
inc/fields/datetime.php
CHANGED
@@ -24,7 +24,7 @@ if ( ! class_exists( 'RWMB_Datetime_Field' ) )
|
|
24 |
* @var array
|
25 |
*/
|
26 |
static $time_format_translation = array(
|
27 |
-
'H' => '
|
28 |
'mm' => 'i', 'ss' => 's', 'l' => 'u', 'tt' => 'a', 'TT' => 'A',
|
29 |
);
|
30 |
|
@@ -39,8 +39,9 @@ if ( ! class_exists( 'RWMB_Datetime_Field' ) )
|
|
39 |
wp_register_style( 'jquery-ui-core', "{$url}/jquery.ui.core.css", array(), '1.8.17' );
|
40 |
wp_register_style( 'jquery-ui-theme', "{$url}/jquery.ui.theme.css", array(), '1.8.17' );
|
41 |
wp_register_style( 'jquery-ui-datepicker', "{$url}/jquery.ui.datepicker.css", array( 'jquery-ui-core', 'jquery-ui-theme' ), '1.8.17' );
|
|
|
42 |
wp_register_style( 'jquery-ui-slider', "{$url}/jquery.ui.slider.css", array( 'jquery-ui-core', 'jquery-ui-theme' ), '1.8.17' );
|
43 |
-
wp_enqueue_style( 'jquery-ui-timepicker', "{$url}/jquery-ui-timepicker-addon.min.css", array( 'jquery-ui-datepicker', 'jquery-ui-slider' ), '1.5.0' );
|
44 |
|
45 |
$url = RWMB_JS_URL . 'jqueryui';
|
46 |
wp_register_script( 'jquery-ui-timepicker', "{$url}/jquery-ui-timepicker-addon.min.js", array( 'jquery-ui-datepicker', 'jquery-ui-slider' ), '1.5.0', true );
|
24 |
* @var array
|
25 |
*/
|
26 |
static $time_format_translation = array(
|
27 |
+
'H' => 'G', 'HH' => 'H', 'h' => 'g', 'hh' => 'h',
|
28 |
'mm' => 'i', 'ss' => 's', 'l' => 'u', 'tt' => 'a', 'TT' => 'A',
|
29 |
);
|
30 |
|
39 |
wp_register_style( 'jquery-ui-core', "{$url}/jquery.ui.core.css", array(), '1.8.17' );
|
40 |
wp_register_style( 'jquery-ui-theme', "{$url}/jquery.ui.theme.css", array(), '1.8.17' );
|
41 |
wp_register_style( 'jquery-ui-datepicker', "{$url}/jquery.ui.datepicker.css", array( 'jquery-ui-core', 'jquery-ui-theme' ), '1.8.17' );
|
42 |
+
wp_register_style( 'wp-datepicker', RWMB_CSS_URL ."datepicker.css", array( 'jquery-ui-core', 'jquery-ui-theme' ), '1.8.17' );
|
43 |
wp_register_style( 'jquery-ui-slider', "{$url}/jquery.ui.slider.css", array( 'jquery-ui-core', 'jquery-ui-theme' ), '1.8.17' );
|
44 |
+
wp_enqueue_style( 'jquery-ui-timepicker', "{$url}/jquery-ui-timepicker-addon.min.css", array( 'jquery-ui-datepicker', 'jquery-ui-slider', 'wp-datepicker' ), '1.5.0' );
|
45 |
|
46 |
$url = RWMB_JS_URL . 'jqueryui';
|
47 |
wp_register_script( 'jquery-ui-timepicker', "{$url}/jquery-ui-timepicker-addon.min.js", array( 'jquery-ui-datepicker', 'jquery-ui-slider' ), '1.5.0', true );
|
inc/fields/divider.php
CHANGED
@@ -26,7 +26,8 @@ if ( ! class_exists( 'RWMB_Divider_Field' ) )
|
|
26 |
*/
|
27 |
static function begin_html( $meta, $field )
|
28 |
{
|
29 |
-
|
|
|
30 |
}
|
31 |
|
32 |
/**
|
26 |
*/
|
27 |
static function begin_html( $meta, $field )
|
28 |
{
|
29 |
+
$attributes = empty( $field['id'] ) ? '' : " id='{$field['id']}'";
|
30 |
+
return "<hr$attributes>";
|
31 |
}
|
32 |
|
33 |
/**
|
inc/fields/heading.php
CHANGED
@@ -26,7 +26,8 @@ if ( ! class_exists( 'RWMB_Heading_Field' ) )
|
|
26 |
*/
|
27 |
static function begin_html( $meta, $field )
|
28 |
{
|
29 |
-
|
|
|
30 |
}
|
31 |
|
32 |
/**
|
26 |
*/
|
27 |
static function begin_html( $meta, $field )
|
28 |
{
|
29 |
+
$attributes = empty( $field['id'] ) ? '' : " id='{$field['id']}'";
|
30 |
+
return sprintf( '<h4%s>%s</h4>', $attributes, $field['name'] );
|
31 |
}
|
32 |
|
33 |
/**
|
inc/fields/hidden.php
CHANGED
@@ -17,10 +17,10 @@ if ( ! class_exists( 'RWMB_Hidden_Field' ) )
|
|
17 |
static function html( $meta, $field )
|
18 |
{
|
19 |
return sprintf(
|
20 |
-
'<input type="hidden" class="rwmb-hidden" name="%s" id="%s" value="%s"
|
21 |
$field['field_name'],
|
22 |
$field['id'],
|
23 |
-
$
|
24 |
);
|
25 |
}
|
26 |
}
|
17 |
static function html( $meta, $field )
|
18 |
{
|
19 |
return sprintf(
|
20 |
+
'<input type="hidden" class="rwmb-hidden" name="%s" id="%s" value="%s">',
|
21 |
$field['field_name'],
|
22 |
$field['id'],
|
23 |
+
$field['std']
|
24 |
);
|
25 |
}
|
26 |
}
|
inc/helpers.php
CHANGED
@@ -60,6 +60,8 @@ if ( ! class_exists( 'RWMB_Helper' ) )
|
|
60 |
'type' => 'text',
|
61 |
'multiple' => false,
|
62 |
) );
|
|
|
|
|
63 |
|
64 |
// Always set 'multiple' true for following field types
|
65 |
if ( in_array( $args['type'], array( 'checkbox_list', 'file', 'file_advanced', 'image', 'image_advanced', 'plupload_image', 'thickbox_image' ) ) )
|
@@ -137,6 +139,10 @@ if ( ! class_exists( 'RWMB_Helper' ) )
|
|
137 |
);
|
138 |
$meta = RWMB_Map_Field::the_value( $field, $args, $post_id );
|
139 |
}
|
|
|
|
|
|
|
|
|
140 |
return apply_filters( 'rwmb_meta', $meta, $key, $args, $post_id );
|
141 |
}
|
142 |
}
|
60 |
'type' => 'text',
|
61 |
'multiple' => false,
|
62 |
) );
|
63 |
+
|
64 |
+
|
65 |
|
66 |
// Always set 'multiple' true for following field types
|
67 |
if ( in_array( $args['type'], array( 'checkbox_list', 'file', 'file_advanced', 'image', 'image_advanced', 'plupload_image', 'thickbox_image' ) ) )
|
139 |
);
|
140 |
$meta = RWMB_Map_Field::the_value( $field, $args, $post_id );
|
141 |
}
|
142 |
+
elseif ( 'oembed' == $args['type'] )
|
143 |
+
{
|
144 |
+
$meta = ( $embed = @wp_oembed_get( $meta ) ) ? $embed : $meta;
|
145 |
+
}
|
146 |
return apply_filters( 'rwmb_meta', $meta, $key, $args, $post_id );
|
147 |
}
|
148 |
}
|
inc/meta-box.php
CHANGED
@@ -86,13 +86,21 @@ if ( ! class_exists( 'RW_Meta_Box' ) )
|
|
86 |
// Hide meta box if it's set 'default_hidden'
|
87 |
add_filter( 'default_hidden_meta_boxes', array( $this, 'hide' ), 10, 2 );
|
88 |
|
89 |
-
// Save post meta
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
}
|
97 |
|
98 |
/**
|
86 |
// Hide meta box if it's set 'default_hidden'
|
87 |
add_filter( 'default_hidden_meta_boxes', array( $this, 'hide' ), 10, 2 );
|
88 |
|
89 |
+
// Save post meta
|
90 |
+
foreach( $this->meta_box['post_types'] as $post_type )
|
91 |
+
{
|
92 |
+
if( 'attachment' === $post_type )
|
93 |
+
{
|
94 |
+
// Attachment uses other hooks
|
95 |
+
// @see wp_update_post(), wp_insert_attachment()
|
96 |
+
add_action( 'edit_attachment', array( $this, 'save_post' ) );
|
97 |
+
add_action( 'add_attachment', array( $this, 'save_post' ) );
|
98 |
+
}
|
99 |
+
else
|
100 |
+
{
|
101 |
+
add_action( "save_post_{$post_type}", array( $this, 'save_post' ) );
|
102 |
+
}
|
103 |
+
}
|
104 |
}
|
105 |
|
106 |
/**
|
js/clone.js
CHANGED
@@ -1,7 +1,90 @@
|
|
|
|
|
|
1 |
jQuery( function ( $ )
|
2 |
{
|
3 |
'use strict';
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
/**
|
6 |
* Clone fields
|
7 |
* @param $container A div container which has all fields
|
@@ -16,77 +99,23 @@ jQuery( function ( $ )
|
|
16 |
$clone.insertAfter( $clone_last );
|
17 |
$input = $clone.find( ':input[class|="rwmb"]' );
|
18 |
|
19 |
-
// Increment each field type
|
20 |
$input.each( function ()
|
21 |
{
|
22 |
-
var $
|
23 |
-
|
24 |
-
if ( $this.attr( 'type' ) === 'radio' || $this.attr( 'type' ) === 'checkbox' )
|
25 |
{
|
26 |
// Reset 'checked' attribute
|
27 |
-
$
|
28 |
}
|
29 |
else
|
30 |
{
|
31 |
// Reset value
|
32 |
-
$
|
33 |
-
}
|
34 |
-
|
35 |
-
// Get the field name, and increment
|
36 |
-
// Not all fields require id, such as 'autocomplete'
|
37 |
-
var name = $this.attr( 'name' );
|
38 |
-
if ( name )
|
39 |
-
{
|
40 |
-
name = name.replace( /\[(\d+)\]/, function ( match, p1 )
|
41 |
-
{
|
42 |
-
return '[' + ( parseInt( p1, 10 ) + 1 ) + ']';
|
43 |
-
} );
|
44 |
-
|
45 |
-
// Update the "name" attribute
|
46 |
-
$this.attr( 'name', name );
|
47 |
-
}
|
48 |
-
|
49 |
-
// Get the field id, and increment
|
50 |
-
// Not all fields require id, such as 'radio', 'checkbox_list'
|
51 |
-
var id = $this.attr( 'id' );
|
52 |
-
if ( id )
|
53 |
-
{
|
54 |
-
if ( /_(\d+)/.test( id ) )
|
55 |
-
{
|
56 |
-
id = id.replace( /_(\d+)/, function ( match, p1 )
|
57 |
-
{
|
58 |
-
return '_' + ( parseInt( p1, 10 ) + 1 );
|
59 |
-
} );
|
60 |
-
}
|
61 |
-
else
|
62 |
-
{
|
63 |
-
id += '_1';
|
64 |
-
}
|
65 |
-
|
66 |
-
// Update the "id" attribute
|
67 |
-
$this.attr( 'id', id );
|
68 |
-
}
|
69 |
-
|
70 |
-
// Update the address_button "value" attribute
|
71 |
-
var $address_button = $clone.find( '.rwmb-map-goto-address-button' );
|
72 |
-
if ( $address_button )
|
73 |
-
{
|
74 |
-
var value = $address_button.attr( 'value' );
|
75 |
-
if ( /_(\d+)/.test( value ) )
|
76 |
-
{
|
77 |
-
value = value.replace( /_(\d+)/, function ( match, p1 )
|
78 |
-
{
|
79 |
-
return '_' + ( parseInt( p1, 10 ) + 1 );
|
80 |
-
} );
|
81 |
-
}
|
82 |
-
else
|
83 |
-
{
|
84 |
-
value += '_1';
|
85 |
-
}
|
86 |
-
$address_button.attr( 'value', value );
|
87 |
}
|
88 |
} );
|
89 |
|
|
|
|
|
90 |
// Toggle remove buttons
|
91 |
toggleRemoveButtons( $input );
|
92 |
|
@@ -97,50 +126,31 @@ jQuery( function ( $ )
|
|
97 |
/**
|
98 |
* Hide remove buttons when there's only 1 of them
|
99 |
*
|
100 |
-
* @param $
|
101 |
*
|
102 |
* @return void
|
103 |
*/
|
104 |
-
function toggleRemoveButtons( $
|
105 |
{
|
106 |
-
var $button;
|
107 |
-
$
|
108 |
-
$el.each( function ()
|
109 |
-
{
|
110 |
-
$button = $( this ).find( '.remove-clone' );
|
111 |
-
if ( $button.length < 2 )
|
112 |
-
{
|
113 |
-
$button.hide();
|
114 |
-
}
|
115 |
-
else
|
116 |
-
{
|
117 |
-
$button.show();
|
118 |
-
}
|
119 |
-
} );
|
120 |
}
|
121 |
|
122 |
/**
|
123 |
* Toggle add button
|
124 |
* Used with [data-max-clone] attribute. When max clone is reached, the add button is hid and vice versa
|
125 |
*
|
126 |
-
* @param $
|
127 |
*
|
128 |
* @return void
|
129 |
*/
|
130 |
-
function toggleAddButton( $
|
131 |
{
|
132 |
-
var $button = $
|
133 |
-
maxClone = parseInt( $
|
134 |
-
numClone = $
|
135 |
|
136 |
-
|
137 |
-
{
|
138 |
-
$button.hide();
|
139 |
-
}
|
140 |
-
else
|
141 |
-
{
|
142 |
-
$button.show();
|
143 |
-
}
|
144 |
}
|
145 |
|
146 |
/**
|
@@ -154,11 +164,11 @@ jQuery( function ( $ )
|
|
154 |
$clone_last = $container.find( '.rwmb-clone:last' ),
|
155 |
$clone = $( '<div />' ).addClass( 'rwmb-clone' ),
|
156 |
field_name = $clone_last.find( 'textarea.wp-editor-area' ).attr( 'name' ),
|
157 |
-
field_id = field_name.replace( /\[(\d+)
|
158 |
|
159 |
//Create some global vars
|
160 |
var new_index = 0;
|
161 |
-
var new_name = field_name.replace( /\[(\d+)
|
162 |
{
|
163 |
new_index = ( parseInt( p1, 10 ) + 1 );
|
164 |
return '[' + new_index + ']';
|
@@ -179,13 +189,13 @@ jQuery( function ( $ )
|
|
179 |
$clone.insertAfter( $clone_last );
|
180 |
|
181 |
//Replace ID of field with new ID
|
182 |
-
var new_id = cloned_editor.attr( 'id' ).replace( /\[(\d+)
|
183 |
cloned_editor.attr( 'id', new_id );
|
184 |
|
185 |
//Replace all IDs within cloned field
|
186 |
cloned_editor.find( '[id*="' + field_id + '"]' ).each( function ()
|
187 |
{
|
188 |
-
var id = $( this ).attr( 'id' ).replace( /\[(\d+)
|
189 |
$( this ).attr( 'id', id );
|
190 |
} );
|
191 |
|
@@ -238,48 +248,62 @@ jQuery( function ( $ )
|
|
238 |
|
239 |
}
|
240 |
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
e.preventDefault();
|
245 |
-
|
246 |
-
var $input = $( this ).closest( '.rwmb-input' );
|
247 |
-
|
248 |
-
if ( $( this ).closest( '.rwmb-field' ).hasClass( 'rwmb-wysiwyg-wrapper' ) )
|
249 |
-
{
|
250 |
-
cloneWYSIWYG( $input );
|
251 |
-
}
|
252 |
-
else
|
253 |
{
|
254 |
-
|
255 |
-
}
|
256 |
|
257 |
-
|
258 |
-
toggleAddButton( $input );
|
259 |
-
} )
|
260 |
-
// Remove clones
|
261 |
-
.on( 'click', '.remove-clone', function ( e )
|
262 |
-
{
|
263 |
-
e.preventDefault();
|
264 |
|
265 |
-
|
266 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
267 |
|
268 |
-
|
269 |
-
|
|
|
|
|
|
|
270 |
{
|
271 |
-
|
272 |
-
}
|
273 |
|
274 |
-
|
|
|
275 |
|
276 |
-
|
277 |
-
|
278 |
-
|
|
|
|
|
279 |
|
280 |
-
|
|
|
|
|
|
|
|
|
281 |
|
282 |
-
$( '.rwmb-input' ).
|
283 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
284 |
} );
|
285 |
} );
|
1 |
+
/* global jQuery, rwmb_cloneable_editors */
|
2 |
+
|
3 |
jQuery( function ( $ )
|
4 |
{
|
5 |
'use strict';
|
6 |
|
7 |
+
// Object holds all methods related to fields' index when clone
|
8 |
+
var cloneIndex = {
|
9 |
+
/**
|
10 |
+
* Reset index for fields in .rwmb-clone
|
11 |
+
* Must be done when add/remove or sort clone
|
12 |
+
* @param $container A div container which has all fields
|
13 |
+
*/
|
14 |
+
reset : function ( $container )
|
15 |
+
{
|
16 |
+
var index = 0;
|
17 |
+
$container.find( '.rwmb-clone' ).each( function ()
|
18 |
+
{
|
19 |
+
cloneIndex.set( $( this ), index++ );
|
20 |
+
} );
|
21 |
+
},
|
22 |
+
/**
|
23 |
+
* Set index for fields in a .rwmb-clone
|
24 |
+
* @param $clone .rwmb-clone element
|
25 |
+
* @param index Index value
|
26 |
+
*/
|
27 |
+
set : function ( $clone, index )
|
28 |
+
{
|
29 |
+
$clone.find( ':input[class|="rwmb"]' ).each( function ()
|
30 |
+
{
|
31 |
+
var $field = $( this );
|
32 |
+
|
33 |
+
// Name attribute
|
34 |
+
var name = $field.attr( 'name' );
|
35 |
+
if ( name )
|
36 |
+
{
|
37 |
+
$field.attr( 'name', cloneIndex.replace( index, name, '[', ']', false ) );
|
38 |
+
}
|
39 |
+
|
40 |
+
// ID attribute
|
41 |
+
var id = $field.attr( 'id' );
|
42 |
+
if ( id )
|
43 |
+
{
|
44 |
+
$field.attr( 'id', cloneIndex.replace( index, id, '_' ) );
|
45 |
+
}
|
46 |
+
} );
|
47 |
+
|
48 |
+
// Address button's value attribute
|
49 |
+
var $address = $clone.find( '.rwmb-map-goto-address-button' );
|
50 |
+
if ( $address.length )
|
51 |
+
{
|
52 |
+
var value = $address.attr( 'value' );
|
53 |
+
$address.attr( 'value', cloneIndex.replace( index, value, '_' ) );
|
54 |
+
}
|
55 |
+
},
|
56 |
+
/**
|
57 |
+
* Replace an attribute of a field with updated index
|
58 |
+
* @param index New index value
|
59 |
+
* @param value Attribute value
|
60 |
+
* @param before String before returned value
|
61 |
+
* @param after String after returned value
|
62 |
+
* @param alternative Check if attribute does not contain any integer, will reset the attribute?
|
63 |
+
* @return string
|
64 |
+
*/
|
65 |
+
replace : function ( index, value, before, after, alternative )
|
66 |
+
{
|
67 |
+
before = before || '';
|
68 |
+
after = after || '';
|
69 |
+
alternative = alternative || true;
|
70 |
+
|
71 |
+
var regex = new RegExp( cloneIndex.escapeRegex( before ) + '(\\d+)' + cloneIndex.escapeRegex( after ) ),
|
72 |
+
newValue = before + index + after;
|
73 |
+
|
74 |
+
return regex.test( value ) ? value.replace( regex, newValue ) : (alternative ? value + newValue : value );
|
75 |
+
},
|
76 |
+
/**
|
77 |
+
* Helper function to escape string in regular expression
|
78 |
+
* @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
|
79 |
+
* @param string
|
80 |
+
* @return string
|
81 |
+
*/
|
82 |
+
escapeRegex: function ( string )
|
83 |
+
{
|
84 |
+
return string.replace( /[.*+?^${}()|[\]\\]/g, "\\$&" );
|
85 |
+
}
|
86 |
+
};
|
87 |
+
|
88 |
/**
|
89 |
* Clone fields
|
90 |
* @param $container A div container which has all fields
|
99 |
$clone.insertAfter( $clone_last );
|
100 |
$input = $clone.find( ':input[class|="rwmb"]' );
|
101 |
|
|
|
102 |
$input.each( function ()
|
103 |
{
|
104 |
+
var $field = $( this );
|
105 |
+
if ( $field.attr( 'type' ) === 'radio' || $field.attr( 'type' ) === 'checkbox' )
|
|
|
106 |
{
|
107 |
// Reset 'checked' attribute
|
108 |
+
$field.removeAttr( 'checked' );
|
109 |
}
|
110 |
else
|
111 |
{
|
112 |
// Reset value
|
113 |
+
$field.val( '' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
}
|
115 |
} );
|
116 |
|
117 |
+
cloneIndex.reset( $container );
|
118 |
+
|
119 |
// Toggle remove buttons
|
120 |
toggleRemoveButtons( $input );
|
121 |
|
126 |
/**
|
127 |
* Hide remove buttons when there's only 1 of them
|
128 |
*
|
129 |
+
* @param $container .rwmb-input container
|
130 |
*
|
131 |
* @return void
|
132 |
*/
|
133 |
+
function toggleRemoveButtons( $container )
|
134 |
{
|
135 |
+
var $button = $container.find( '.remove-clone' );
|
136 |
+
$button[$button.length < 2 ? 'hide' : 'show']();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
}
|
138 |
|
139 |
/**
|
140 |
* Toggle add button
|
141 |
* Used with [data-max-clone] attribute. When max clone is reached, the add button is hid and vice versa
|
142 |
*
|
143 |
+
* @param $container .rwmb-input container
|
144 |
*
|
145 |
* @return void
|
146 |
*/
|
147 |
+
function toggleAddButton( $container )
|
148 |
{
|
149 |
+
var $button = $container.find( '.add-clone' ),
|
150 |
+
maxClone = parseInt( $container.data( 'max-clone' ) ),
|
151 |
+
numClone = $container.find( '.rwmb-clone' ).length;
|
152 |
|
153 |
+
$button[isNaN( maxClone ) || (maxClone && numClone < maxClone) ? 'show' : 'hide']();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
}
|
155 |
|
156 |
/**
|
164 |
$clone_last = $container.find( '.rwmb-clone:last' ),
|
165 |
$clone = $( '<div />' ).addClass( 'rwmb-clone' ),
|
166 |
field_name = $clone_last.find( 'textarea.wp-editor-area' ).attr( 'name' ),
|
167 |
+
field_id = field_name.replace( /\[(\d+)]/, '' );
|
168 |
|
169 |
//Create some global vars
|
170 |
var new_index = 0;
|
171 |
+
var new_name = field_name.replace( /\[(\d+)]/, function ( match, p1 )
|
172 |
{
|
173 |
new_index = ( parseInt( p1, 10 ) + 1 );
|
174 |
return '[' + new_index + ']';
|
189 |
$clone.insertAfter( $clone_last );
|
190 |
|
191 |
//Replace ID of field with new ID
|
192 |
+
var new_id = cloned_editor.attr( 'id' ).replace( /\[(\d+)]/, '[' + new_index + ']' );
|
193 |
cloned_editor.attr( 'id', new_id );
|
194 |
|
195 |
//Replace all IDs within cloned field
|
196 |
cloned_editor.find( '[id*="' + field_id + '"]' ).each( function ()
|
197 |
{
|
198 |
+
var id = $( this ).attr( 'id' ).replace( /\[(\d+)]/, '[' + new_index + ']' );
|
199 |
$( this ).attr( 'id', id );
|
200 |
} );
|
201 |
|
248 |
|
249 |
}
|
250 |
|
251 |
+
$( '#poststuff' )
|
252 |
+
// Add clones
|
253 |
+
.on( 'click', '.add-clone', function ( e )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
254 |
{
|
255 |
+
e.preventDefault();
|
|
|
256 |
|
257 |
+
var $container = $( this ).closest( '.rwmb-input' );
|
|
|
|
|
|
|
|
|
|
|
|
|
258 |
|
259 |
+
cloneIndex.reset( $container );
|
260 |
+
|
261 |
+
if ( $( this ).closest( '.rwmb-field' ).hasClass( 'rwmb-wysiwyg-wrapper' ) )
|
262 |
+
{
|
263 |
+
cloneWYSIWYG( $container );
|
264 |
+
}
|
265 |
+
else
|
266 |
+
{
|
267 |
+
clone( $container );
|
268 |
+
}
|
269 |
|
270 |
+
toggleRemoveButtons( $container );
|
271 |
+
toggleAddButton( $container );
|
272 |
+
} )
|
273 |
+
// Remove clones
|
274 |
+
.on( 'click', '.remove-clone', function ( e )
|
275 |
{
|
276 |
+
e.preventDefault();
|
|
|
277 |
|
278 |
+
var $this = $( this ),
|
279 |
+
$container = $this.closest( '.rwmb-input' );
|
280 |
|
281 |
+
// Remove clone only if there are 2 or more of them
|
282 |
+
if ( $container.find( '.rwmb-clone' ).length < 2 )
|
283 |
+
{
|
284 |
+
return;
|
285 |
+
}
|
286 |
|
287 |
+
$this.parent().remove();
|
288 |
+
cloneIndex.reset( $container );
|
289 |
+
toggleRemoveButtons( $container );
|
290 |
+
toggleAddButton( $container )
|
291 |
+
} );
|
292 |
|
293 |
+
$( '.rwmb-input' ).each( function ()
|
294 |
+
{
|
295 |
+
var $container = $( this );
|
296 |
+
cloneIndex.reset( $container );
|
297 |
+
toggleRemoveButtons( $container );
|
298 |
+
toggleAddButton( $container );
|
299 |
+
|
300 |
+
$container.sortable( {
|
301 |
+
handle : '.rwmb-clone-icon',
|
302 |
+
placeholder: ' rwmb-clone rwmb-clone-placeholder',
|
303 |
+
update : function ()
|
304 |
+
{
|
305 |
+
cloneIndex.reset( $container );
|
306 |
+
}
|
307 |
+
} );
|
308 |
} );
|
309 |
} );
|
meta-box.php
CHANGED
@@ -3,17 +3,19 @@
|
|
3 |
Plugin Name: Meta Box
|
4 |
Plugin URI: http://metabox.io
|
5 |
Description: Create meta box for editing pages in WordPress. Compatible with custom post types since WP 3.0
|
6 |
-
Version: 4.5.
|
7 |
Author: Rilwis
|
8 |
Author URI: http://www.deluxeblogtips.com
|
9 |
License: GPL2+
|
|
|
|
|
10 |
*/
|
11 |
|
12 |
// Prevent loading this file directly
|
13 |
defined( 'ABSPATH' ) || exit;
|
14 |
|
15 |
// Script version, used to add version for scripts and styles
|
16 |
-
define( 'RWMB_VER', '4.5.
|
17 |
|
18 |
// Define plugin URLs, for fast enqueuing scripts and styles
|
19 |
if ( ! defined( 'RWMB_URL' ) )
|
3 |
Plugin Name: Meta Box
|
4 |
Plugin URI: http://metabox.io
|
5 |
Description: Create meta box for editing pages in WordPress. Compatible with custom post types since WP 3.0
|
6 |
+
Version: 4.5.7
|
7 |
Author: Rilwis
|
8 |
Author URI: http://www.deluxeblogtips.com
|
9 |
License: GPL2+
|
10 |
+
Text Domain: meta-box
|
11 |
+
Domain Path: /lang/
|
12 |
*/
|
13 |
|
14 |
// Prevent loading this file directly
|
15 |
defined( 'ABSPATH' ) || exit;
|
16 |
|
17 |
// Script version, used to add version for scripts and styles
|
18 |
+
define( 'RWMB_VER', '4.5.7' );
|
19 |
|
20 |
// Define plugin URLs, for fast enqueuing scripts and styles
|
21 |
if ( ! defined( 'RWMB_URL' ) )
|
readme.txt
CHANGED
@@ -1,53 +1,59 @@
|
|
1 |
=== Meta Box ===
|
2 |
-
Contributors: rilwis, fitwp, f-j-kaiser,
|
3 |
Donate link: http://www.deluxeblogtips.com/donate
|
4 |
-
Tags: meta-box, custom
|
5 |
Requires at least: 3.5
|
6 |
-
Tested up to: 4.
|
7 |
-
Stable tag: 4.5.
|
8 |
License: GPLv2 or later
|
9 |
|
10 |
-
Meta Box plugin is a
|
11 |
|
12 |
== Description ==
|
13 |
|
14 |
-
Meta Box plugin provides powerful API to implement custom meta boxes and custom fields in
|
15 |
|
16 |
### Features
|
17 |
|
18 |
* Easily register multiple custom meta boxes for posts, pages or custom post types
|
19 |
-
* Supports
|
|
|
20 |
* Has built-in hooks which allow you to change the appearance and behavior of meta boxes
|
21 |
-
* Easily integrate with themes
|
|
|
22 |
|
23 |
### Documentation
|
24 |
|
25 |
-
- [Getting Started](
|
26 |
-
- [Register Meta Boxes](
|
27 |
-
- [Define Fields](
|
28 |
-
- [Get Meta Value](
|
29 |
|
30 |
-
See more documentation [here](
|
31 |
|
32 |
-
###
|
33 |
|
34 |
-
- [
|
35 |
-
- [Meta Box
|
36 |
-
- [Meta Box
|
37 |
-
- [Meta Box
|
38 |
-
- [Meta Box
|
39 |
-
- [Meta Box
|
40 |
-
- [Meta Box
|
41 |
-
- [Meta Box
|
|
|
|
|
|
|
|
|
42 |
|
43 |
-
See all
|
44 |
|
45 |
### Plugin Links
|
46 |
|
47 |
-
- [Project Page](
|
48 |
-
- [Documentation](
|
49 |
- [Report Bugs/Issues](https://github.com/rilwis/meta-box/issues)
|
50 |
-
- [Premium Extensions](
|
51 |
|
52 |
== Installation ==
|
53 |
|
@@ -55,7 +61,7 @@ See all premium extensions [here](http://metabox.io/plugins/).
|
|
55 |
1. Upload `meta-box` to the `/wp-content/plugins/` directory
|
56 |
1. Activate the plugin through the 'Plugins' menu in WordPress
|
57 |
|
58 |
-
To getting started with the plugin API, please read [this tutorial](
|
59 |
|
60 |
== Frequently Asked Questions ==
|
61 |
|
@@ -69,6 +75,15 @@ To getting started with the plugin API, please read [this tutorial](http://metab
|
|
69 |
|
70 |
== Changelog ==
|
71 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
= 4.5.6 =
|
73 |
* Fix: Warning for timestamp for datetime field.
|
74 |
* Fix: z-index for color picker.
|
1 |
=== Meta Box ===
|
2 |
+
Contributors: rilwis, fitwp, f-j-kaiser, funkatronic, PerWiklander, ruanmer, Omnicia
|
3 |
Donate link: http://www.deluxeblogtips.com/donate
|
4 |
+
Tags: meta-box, custom fields, custom field, meta, meta-boxes, admin, advanced, custom, edit, field, file, image, magic fields, matrix, more fields, Post, repeater, simple fields, text, textarea, type, cms, fields post
|
5 |
Requires at least: 3.5
|
6 |
+
Tested up to: 4.3.1
|
7 |
+
Stable tag: 4.5.7
|
8 |
License: GPLv2 or later
|
9 |
|
10 |
+
Meta Box plugin is a powerful, professional solution to create custom meta boxes and custom fields for WordPress websites.
|
11 |
|
12 |
== Description ==
|
13 |
|
14 |
+
**Meta Box plugin provides powerful API to implement custom meta boxes and custom fields for any post type in WordPress**. It extends the default WordPress functionality to add more flexible data to posts, pages or any custom post types which makes your website look like a professional Content Management Systems.
|
15 |
|
16 |
### Features
|
17 |
|
18 |
* Easily register multiple custom meta boxes for posts, pages or custom post types
|
19 |
+
* Supports more than 35 [field types](https://metabox.io/docs/define-fields/): (text, textarea, wysiwyg, image, file, post, select, checkbox, radio buttons, date time picker, taxonomy, user, oembed and more to come!)
|
20 |
+
* Uses the native WordPress meta data storage and functions for ease of use and fast processing
|
21 |
* Has built-in hooks which allow you to change the appearance and behavior of meta boxes
|
22 |
+
* Easily integrate with themes and plugins
|
23 |
+
* Compatible with WPML multilingual plugin
|
24 |
|
25 |
### Documentation
|
26 |
|
27 |
+
- [Getting Started](https://metabox.io/docs/getting-started/)
|
28 |
+
- [Register Meta Boxes](https://metabox.io/docs/registering-meta-boxes/)
|
29 |
+
- [Define Fields](https://metabox.io/docs/define-fields/)
|
30 |
+
- [Get Meta Value](https://metabox.io/docs/get-meta-value/)
|
31 |
|
32 |
+
See more documentation [here](https://metabox.io/docs/).
|
33 |
|
34 |
+
### Extensions
|
35 |
|
36 |
+
- [MB Custom Post Type](https://wordpress.org/plugins/mb-custom-post-type/): Create and manage custom post types easily in WordPress with an easy-to-use interface.
|
37 |
+
- [Meta Box Yoast SEO](https://wordpress.org/plugins/meta-box-yoast-seo/): Add content of custom fields to Yoast SEO Content Analysis to have better/correct SEO score.
|
38 |
+
- [Meta Box Text Limiter](https://wordpress.org/plugins/meta-box-text-limiter/): Limit the number of characters or words entered for text and textarea fields.
|
39 |
+
- [Meta Box Conditional Logic](https://metabox.io/plugins/meta-box-conditional-logic/): Add visibility dependency for custom meta boxes and custom fields in WordPress.
|
40 |
+
- [Meta Box Group](https://metabox.io/plugins/meta-box-group/): Create repeatable groups of custom fields for better appearance and structure.
|
41 |
+
- [Meta Box Builder](https://metabox.io/plugins/meta-box-builder/): Create custom meta boxes and custom fields in WordPress using the drag-and-drop interface.
|
42 |
+
- [Meta Box Template](https://metabox.io/plugins/meta-box-template/): Define custom meta boxes and custom fields easier with templates.
|
43 |
+
- [Meta Box Tooltip](https://metabox.io/plugins/meta-box-tooltip/): Display help information for fields using beautiful tooltips.
|
44 |
+
- [Meta Box Show Hide (Javascript)](https://metabox.io/plugins/meta-box-show-hide-javascript/): Toggle meta boxes by page template, post format, taxonomy (including category) via Javascript.
|
45 |
+
- [Meta Box Tabs](https://metabox.io/plugins/meta-box-tabs/): Create tabs for meta boxes easily. Support 3 WordPress-native tab styles and tab icon.
|
46 |
+
- [Meta Box Columns](https://metabox.io/plugins/meta-box-columns/): Display fields more beautiful by putting them into 12-columns grid.
|
47 |
+
- [Meta Box Include Exclude](https://metabox.io/plugins/meta-box-include-exclude/): Show/hide meta boxes by ID, page template, taxonomy or custom function.
|
48 |
|
49 |
+
See all extensions [here](https://metabox.io/plugins/).
|
50 |
|
51 |
### Plugin Links
|
52 |
|
53 |
+
- [Project Page](https://metabox.io)
|
54 |
+
- [Documentation](https://metabox.io/docs/)
|
55 |
- [Report Bugs/Issues](https://github.com/rilwis/meta-box/issues)
|
56 |
+
- [Premium Extensions](https://metabox.io)
|
57 |
|
58 |
== Installation ==
|
59 |
|
61 |
1. Upload `meta-box` to the `/wp-content/plugins/` directory
|
62 |
1. Activate the plugin through the 'Plugins' menu in WordPress
|
63 |
|
64 |
+
To getting started with the plugin API, please read [this tutorial](https://metabox.io/docs/getting-started/).
|
65 |
|
66 |
== Frequently Asked Questions ==
|
67 |
|
75 |
|
76 |
== Changelog ==
|
77 |
|
78 |
+
= 4.5.7 =
|
79 |
+
* Fix: Always set std as value for hidden field
|
80 |
+
* Fix: `rwmb_meta` now can display rich content from `oembed` field
|
81 |
+
* Fix: Wrong format for `datetime` field
|
82 |
+
* Fix: Check and reset clone index when add/remove/sort clones
|
83 |
+
* Improvement: Optionally display ID attribute for heading and divider
|
84 |
+
* Improvement: Adding new style to date field to match WordPress style
|
85 |
+
* Improvement: Change saving hooks to specific post types to prevent saving images to wrong post
|
86 |
+
|
87 |
= 4.5.6 =
|
88 |
* Fix: Warning for timestamp for datetime field.
|
89 |
* Fix: z-index for color picker.
|