Version Description
- Added button for "Check/Uncheck all options" in input list field when type is
checkbox_list
. Props @mrbrazzi. - Select multiple images now does not require to press "Shift".
- Change button field to actual button element.
- Fix scripts and styles dependencies
- Fix bug for select tree when parent not set
- Add sanitize post type in case users use CamelCase in post type name
- Increase z-index of datepicker to prevent overlap with top menu bar
- Make compatible with MB Admin Columns and MB Frontend Submission extensions
- Update Persian translation. Credit Morteza Gholami
Download this release
Release Info
Developer | rilwis |
Plugin | Meta Box |
Version | 4.11.1 |
Comparing to | |
See all releases |
Code changes from version 4.11 to 4.11.1
- css/datepicker.css +1 -1
- inc/fields/button.php +9 -4
- inc/fields/choice.php +1 -1
- inc/fields/file.php +1 -1
- inc/fields/input-list.php +19 -4
- inc/fields/input.php +1 -1
- inc/fields/map.php +1 -1
- inc/fields/select-advanced.php +0 -1
- inc/fields/select.php +1 -1
- inc/loader.php +7 -9
- inc/meta-box.php +2 -2
- inc/templates/audio.php +40 -0
- inc/walkers/select-tree.php +3 -1
- js/clone.js +1 -1
- js/input-list.js +9 -0
- js/media.js +2 -2
- js/validate.js +1 -1
- languages/meta-box-fa_IR.mo +0 -0
- languages/meta-box-fa_IR.po +88 -140
- meta-box.php +3 -3
- readme.txt +57 -8
css/datepicker.css
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
/* Fix empty block below admin footer (issue #24) */
|
2 |
#ui-datepicker-div {
|
3 |
display: none;
|
4 |
-
z-index:
|
5 |
}
|
6 |
|
7 |
/* Style for multiple months */
|
1 |
/* Fix empty block below admin footer (issue #24) */
|
2 |
#ui-datepicker-div {
|
3 |
display: none;
|
4 |
+
z-index: 9999 !important;
|
5 |
}
|
6 |
|
7 |
/* Style for multiple months */
|
inc/fields/button.php
CHANGED
@@ -18,7 +18,7 @@ class RWMB_Button_Field extends RWMB_Field {
|
|
18 |
*/
|
19 |
public static function html( $meta, $field ) {
|
20 |
$attributes = self::get_attributes( $field );
|
21 |
-
return sprintf( '<
|
22 |
}
|
23 |
|
24 |
/**
|
@@ -28,8 +28,10 @@ class RWMB_Button_Field extends RWMB_Field {
|
|
28 |
* @return array
|
29 |
*/
|
30 |
public static function normalize( $field ) {
|
31 |
-
$field
|
32 |
-
|
|
|
|
|
33 |
return $field;
|
34 |
}
|
35 |
|
@@ -41,7 +43,10 @@ class RWMB_Button_Field extends RWMB_Field {
|
|
41 |
* @return array
|
42 |
*/
|
43 |
public static function get_attributes( $field, $value = null ) {
|
44 |
-
$attributes
|
|
|
|
|
|
|
45 |
$attributes['class'] .= ' button hide-if-no-js';
|
46 |
|
47 |
return $attributes;
|
18 |
*/
|
19 |
public static function html( $meta, $field ) {
|
20 |
$attributes = self::get_attributes( $field );
|
21 |
+
return sprintf( '<button %s>%s</button>', self::render_attributes( $attributes ), $field['std'] );
|
22 |
}
|
23 |
|
24 |
/**
|
28 |
* @return array
|
29 |
*/
|
30 |
public static function normalize( $field ) {
|
31 |
+
$field = wp_parse_args( $field, array(
|
32 |
+
'std' => __( 'Click me', 'meta-box' ),
|
33 |
+
) );
|
34 |
+
$field = parent::normalize( $field );
|
35 |
return $field;
|
36 |
}
|
37 |
|
43 |
* @return array
|
44 |
*/
|
45 |
public static function get_attributes( $field, $value = null ) {
|
46 |
+
$attributes = parent::get_attributes( $field, $value );
|
47 |
+
$attributes = wp_parse_args( $attributes, array(
|
48 |
+
'type' => $field['type'],
|
49 |
+
) );
|
50 |
$attributes['class'] .= ' button hide-if-no-js';
|
51 |
|
52 |
return $attributes;
|
inc/fields/choice.php
CHANGED
@@ -126,6 +126,6 @@ abstract class RWMB_Choice_Field extends RWMB_Field {
|
|
126 |
*/
|
127 |
public static function get_option_label( $field, $value ) {
|
128 |
$options = self::call( 'get_options', $field );
|
129 |
-
return $options[ $value ]->label;
|
130 |
}
|
131 |
}
|
126 |
*/
|
127 |
public static function get_option_label( $field, $value ) {
|
128 |
$options = self::call( 'get_options', $field );
|
129 |
+
return isset( $options[ $value ] ) ? $options[ $value ]->label : '';
|
130 |
}
|
131 |
}
|
inc/fields/file.php
CHANGED
@@ -14,7 +14,7 @@ class RWMB_File_Field extends RWMB_Field {
|
|
14 |
*/
|
15 |
public static function admin_enqueue_scripts() {
|
16 |
wp_enqueue_style( 'rwmb-file', RWMB_CSS_URL . 'file.css', array(), RWMB_VER );
|
17 |
-
wp_enqueue_script( 'rwmb-file', RWMB_JS_URL . 'file.js', array( 'jquery' ), RWMB_VER, true );
|
18 |
|
19 |
self::localize_script( 'rwmb-file', 'rwmbFile', array(
|
20 |
// Translators: %d is the number of files in singular form.
|
14 |
*/
|
15 |
public static function admin_enqueue_scripts() {
|
16 |
wp_enqueue_style( 'rwmb-file', RWMB_CSS_URL . 'file.css', array(), RWMB_VER );
|
17 |
+
wp_enqueue_script( 'rwmb-file', RWMB_JS_URL . 'file.js', array( 'jquery-ui-sortable' ), RWMB_VER, true );
|
18 |
|
19 |
self::localize_script( 'rwmb-file', 'rwmbFile', array(
|
20 |
// Translators: %d is the number of files in singular form.
|
inc/fields/input-list.php
CHANGED
@@ -29,9 +29,10 @@ class RWMB_Input_List_Field extends RWMB_Choice_Field {
|
|
29 |
*/
|
30 |
public static function walk( $field, $options, $db_fields, $meta ) {
|
31 |
$walker = new RWMB_Walker_Input_List( $db_fields, $field, $meta );
|
32 |
-
$output =
|
|
|
33 |
$field['collapse'] ? 'collapse' : '',
|
34 |
-
|
35 |
);
|
36 |
$output .= $walker->walk( $options, $field['flatten'] ? - 1 : 0 );
|
37 |
$output .= '</ul>';
|
@@ -50,8 +51,9 @@ class RWMB_Input_List_Field extends RWMB_Choice_Field {
|
|
50 |
$field = RWMB_Input_Field::normalize( $field );
|
51 |
$field = parent::normalize( $field );
|
52 |
$field = wp_parse_args( $field, array(
|
53 |
-
'collapse'
|
54 |
-
'inline'
|
|
|
55 |
) );
|
56 |
|
57 |
$field['flatten'] = $field['multiple'] ? $field['flatten'] : true;
|
@@ -76,4 +78,17 @@ class RWMB_Input_List_Field extends RWMB_Choice_Field {
|
|
76 |
|
77 |
return $attributes;
|
78 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
}
|
29 |
*/
|
30 |
public static function walk( $field, $options, $db_fields, $meta ) {
|
31 |
$walker = new RWMB_Walker_Input_List( $db_fields, $field, $meta );
|
32 |
+
$output = self::get_select_all_html( $field );
|
33 |
+
$output .= sprintf( '<ul class="rwmb-input-list %s %s">',
|
34 |
$field['collapse'] ? 'collapse' : '',
|
35 |
+
$field['inline'] ? 'inline' : ''
|
36 |
);
|
37 |
$output .= $walker->walk( $options, $field['flatten'] ? - 1 : 0 );
|
38 |
$output .= '</ul>';
|
51 |
$field = RWMB_Input_Field::normalize( $field );
|
52 |
$field = parent::normalize( $field );
|
53 |
$field = wp_parse_args( $field, array(
|
54 |
+
'collapse' => true,
|
55 |
+
'inline' => null,
|
56 |
+
'select_all_none' => false,
|
57 |
) );
|
58 |
|
59 |
$field['flatten'] = $field['multiple'] ? $field['flatten'] : true;
|
78 |
|
79 |
return $attributes;
|
80 |
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Get html for select all|none for multiple checkbox.
|
84 |
+
*
|
85 |
+
* @param array $field Field parameters.
|
86 |
+
* @return string
|
87 |
+
*/
|
88 |
+
public static function get_select_all_html( $field ) {
|
89 |
+
if( $field['multiple'] && $field['select_all_none'] ){
|
90 |
+
return sprintf( '<p><button class="rwmb-input-list-select-all-none" data-name="%s">%s</button></p>', $field['id'], __( 'Select All / None','meta-box' ) );
|
91 |
+
}
|
92 |
+
return '';
|
93 |
+
}
|
94 |
}
|
inc/fields/input.php
CHANGED
@@ -30,7 +30,7 @@ abstract class RWMB_Input_Field extends RWMB_Field {
|
|
30 |
public static function normalize( $field ) {
|
31 |
$field = parent::normalize( $field );
|
32 |
$field = wp_parse_args( $field, array(
|
33 |
-
'size'
|
34 |
'datalist' => false,
|
35 |
'readonly' => false,
|
36 |
) );
|
30 |
public static function normalize( $field ) {
|
31 |
$field = parent::normalize( $field );
|
32 |
$field = wp_parse_args( $field, array(
|
33 |
+
'size' => 30,
|
34 |
'datalist' => false,
|
35 |
'readonly' => false,
|
36 |
) );
|
inc/fields/map.php
CHANGED
@@ -30,7 +30,7 @@ class RWMB_Map_Field extends RWMB_Field {
|
|
30 |
*/
|
31 |
$google_maps_url = apply_filters( 'rwmb_google_maps_url', $google_maps_url );
|
32 |
wp_register_script( 'google-maps', esc_url_raw( $google_maps_url ), array(), '', true );
|
33 |
-
wp_enqueue_style( 'rwmb-map', RWMB_CSS_URL . 'map.css' );
|
34 |
wp_enqueue_script( 'rwmb-map', RWMB_JS_URL . 'map.js', array( 'jquery-ui-autocomplete', 'google-maps' ), RWMB_VER, true );
|
35 |
}
|
36 |
|
30 |
*/
|
31 |
$google_maps_url = apply_filters( 'rwmb_google_maps_url', $google_maps_url );
|
32 |
wp_register_script( 'google-maps', esc_url_raw( $google_maps_url ), array(), '', true );
|
33 |
+
wp_enqueue_style( 'rwmb-map', RWMB_CSS_URL . 'map.css', array(), RWMB_VER );
|
34 |
wp_enqueue_script( 'rwmb-map', RWMB_JS_URL . 'map.js', array( 'jquery-ui-autocomplete', 'google-maps' ), RWMB_VER, true );
|
35 |
}
|
36 |
|
inc/fields/select-advanced.php
CHANGED
@@ -30,7 +30,6 @@ class RWMB_Select_Advanced_Field extends RWMB_Select_Field {
|
|
30 |
$dependencies[] = 'rwmb-select2-i18n';
|
31 |
}
|
32 |
|
33 |
-
wp_enqueue_script( 'rwmb-select', RWMB_JS_URL . 'select.js', array( 'jquery' ), RWMB_VER, true );
|
34 |
wp_enqueue_script( 'rwmb-select-advanced', RWMB_JS_URL . 'select-advanced.js', $dependencies, RWMB_VER, true );
|
35 |
}
|
36 |
|
30 |
$dependencies[] = 'rwmb-select2-i18n';
|
31 |
}
|
32 |
|
|
|
33 |
wp_enqueue_script( 'rwmb-select-advanced', RWMB_JS_URL . 'select-advanced.js', $dependencies, RWMB_VER, true );
|
34 |
}
|
35 |
|
inc/fields/select.php
CHANGED
@@ -14,7 +14,7 @@ class RWMB_Select_Field extends RWMB_Choice_Field {
|
|
14 |
*/
|
15 |
public static function admin_enqueue_scripts() {
|
16 |
wp_enqueue_style( 'rwmb-select', RWMB_CSS_URL . 'select.css', array(), RWMB_VER );
|
17 |
-
wp_enqueue_script( 'rwmb-select', RWMB_JS_URL . 'select.js', array(), RWMB_VER, true );
|
18 |
}
|
19 |
|
20 |
/**
|
14 |
*/
|
15 |
public static function admin_enqueue_scripts() {
|
16 |
wp_enqueue_style( 'rwmb-select', RWMB_CSS_URL . 'select.css', array(), RWMB_VER );
|
17 |
+
wp_enqueue_script( 'rwmb-select', RWMB_JS_URL . 'select.js', array( 'jquery' ), RWMB_VER, true );
|
18 |
}
|
19 |
|
20 |
/**
|
inc/loader.php
CHANGED
@@ -18,7 +18,7 @@ class RWMB_Loader {
|
|
18 |
*/
|
19 |
protected function constants() {
|
20 |
// Script version, used to add version for scripts and styles.
|
21 |
-
define( 'RWMB_VER', '4.11' );
|
22 |
|
23 |
list( $path, $url ) = self::get_path( dirname( dirname( __FILE__ ) ) );
|
24 |
|
@@ -83,16 +83,14 @@ class RWMB_Loader {
|
|
83 |
$core = new RWMB_Core;
|
84 |
$core->init();
|
85 |
|
86 |
-
|
87 |
-
|
88 |
-
new RWMB_Validation;
|
89 |
|
90 |
-
|
91 |
-
|
92 |
|
93 |
-
|
94 |
-
|
95 |
-
}
|
96 |
|
97 |
// WPML Compatibility.
|
98 |
$wpml = new RWMB_WPML;
|
18 |
*/
|
19 |
protected function constants() {
|
20 |
// Script version, used to add version for scripts and styles.
|
21 |
+
define( 'RWMB_VER', '4.11.1' );
|
22 |
|
23 |
list( $path, $url ) = self::get_path( dirname( dirname( __FILE__ ) ) );
|
24 |
|
83 |
$core = new RWMB_Core;
|
84 |
$core->init();
|
85 |
|
86 |
+
// Validation module.
|
87 |
+
new RWMB_Validation;
|
|
|
88 |
|
89 |
+
$sanitize = new RWMB_Sanitizer;
|
90 |
+
$sanitize->init();
|
91 |
|
92 |
+
$media_modal = new RWMB_Media_Modal;
|
93 |
+
$media_modal->init();
|
|
|
94 |
|
95 |
// WPML Compatibility.
|
96 |
$wpml = new RWMB_WPML;
|
inc/meta-box.php
CHANGED
@@ -299,8 +299,8 @@ class RW_Meta_Box {
|
|
299 |
$meta_box['post_types'] = $meta_box['pages'];
|
300 |
}
|
301 |
|
302 |
-
// Make sure the post type is an array.
|
303 |
-
$meta_box['post_types'] = (array) $meta_box['post_types'];
|
304 |
|
305 |
return $meta_box;
|
306 |
}
|
299 |
$meta_box['post_types'] = $meta_box['pages'];
|
300 |
}
|
301 |
|
302 |
+
// Make sure the post type is an array and is sanitized.
|
303 |
+
$meta_box['post_types'] = array_map( 'sanitize_key', (array) $meta_box['post_types'] );
|
304 |
|
305 |
return $meta_box;
|
306 |
}
|
inc/templates/audio.php
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<script id="tmpl-rwmb-media-item" type="text/html">
|
2 |
+
<input type="hidden" name="{{{ data.controller.fieldName }}}" value="{{{ data.id }}}" class="rwmb-media-input">
|
3 |
+
<div class="rwmb-media-preview">
|
4 |
+
<div class="rwmb-media-content">
|
5 |
+
<div class="centered">
|
6 |
+
<# if ( 'image' === data.type && data.sizes ) { #>
|
7 |
+
<# if ( data.sizes.thumbnail ) { #>
|
8 |
+
<img src="{{{ data.sizes.thumbnail.url }}}">
|
9 |
+
<# } else { #>
|
10 |
+
<img src="{{{ data.sizes.full.url }}}">
|
11 |
+
<# } #>
|
12 |
+
<# } else { #>
|
13 |
+
<# if ( data.image && data.image.src && data.image.src !== data.icon ) { #>
|
14 |
+
<img src="{{ data.image.src }}" />
|
15 |
+
<# } else { #>
|
16 |
+
<img src="{{ data.icon }}" />
|
17 |
+
<# } #>
|
18 |
+
<# } #>
|
19 |
+
</div>
|
20 |
+
</div>
|
21 |
+
</div>
|
22 |
+
<div class="rwmb-media-info">
|
23 |
+
<h4>
|
24 |
+
<a href="{{{ data.url }}}" target="_blank" title="{{{ i18nRwmbMedia.view }}}">
|
25 |
+
<# if( data.title ) { #> {{{ data.title }}}
|
26 |
+
<# } else { #> {{{ i18nRwmbMedia.noTitle }}}
|
27 |
+
<# } #>
|
28 |
+
</a>
|
29 |
+
</h4>
|
30 |
+
<p>{{{ data.mime }}}</p>
|
31 |
+
<p>
|
32 |
+
<a class="rwmb-edit-media" title="{{{ i18nRwmbMedia.edit }}}" href="{{{ data.editLink }}}" target="_blank">
|
33 |
+
<span class="dashicons dashicons-edit"></span>{{{ i18nRwmbMedia.edit }}}
|
34 |
+
</a>
|
35 |
+
<a href="#" class="rwmb-remove-media" title="{{{ i18nRwmbMedia.remove }}}">
|
36 |
+
<span class="dashicons dashicons-no-alt"></span>{{{ i18nRwmbMedia.remove }}}
|
37 |
+
</a>
|
38 |
+
</p>
|
39 |
+
</div>
|
40 |
+
</script>
|
inc/walkers/select-tree.php
CHANGED
@@ -52,8 +52,10 @@ class RWMB_Walker_Select_Tree {
|
|
52 |
$children = array();
|
53 |
|
54 |
foreach ( $options as $option ) {
|
55 |
-
$
|
|
|
56 |
}
|
|
|
57 |
$top_level = isset( $children[0] ) ? 0 : $options[0]->$parent;
|
58 |
return $this->display_level( $children, $top_level, true );
|
59 |
}
|
52 |
$children = array();
|
53 |
|
54 |
foreach ( $options as $option ) {
|
55 |
+
$index = isset( $option->$parent ) ? $option->$parent : 0;
|
56 |
+
$children[ $index ][] = $option;
|
57 |
}
|
58 |
+
|
59 |
$top_level = isset( $children[0] ) ? 0 : $options[0]->$parent;
|
60 |
return $this->display_level( $children, $top_level, true );
|
61 |
}
|
js/clone.js
CHANGED
@@ -173,7 +173,7 @@ jQuery( function ( $ ) {
|
|
173 |
|
174 |
$this.parent().trigger( 'remove' ).remove();
|
175 |
toggleRemoveButtons( $container );
|
176 |
-
toggleAddButton( $container )
|
177 |
} );
|
178 |
|
179 |
$( '.rwmb-input' ).each( function () {
|
173 |
|
174 |
$this.parent().trigger( 'remove' ).remove();
|
175 |
toggleRemoveButtons( $container );
|
176 |
+
toggleAddButton( $container );
|
177 |
} );
|
178 |
|
179 |
$( '.rwmb-input' ).each( function () {
|
js/input-list.js
CHANGED
@@ -17,4 +17,13 @@ jQuery( function ( $ ) {
|
|
17 |
.on( 'change', '.rwmb-input-list.collapse :checkbox', update )
|
18 |
.on( 'clone', '.rwmb-input-list.collapse :checkbox', update );
|
19 |
$( '.rwmb-input-list.collapse :checkbox' ).each( update );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
} );
|
17 |
.on( 'change', '.rwmb-input-list.collapse :checkbox', update )
|
18 |
.on( 'clone', '.rwmb-input-list.collapse :checkbox', update );
|
19 |
$( '.rwmb-input-list.collapse :checkbox' ).each( update );
|
20 |
+
|
21 |
+
$( '.rwmb-input-list-select-all-none' ).toggle(
|
22 |
+
function () {
|
23 |
+
$('input.rwmb-checkbox_list[name="' + $(this).data('name') + '[]"]').prop('checked', true);
|
24 |
+
},
|
25 |
+
function () {
|
26 |
+
$('input.rwmb-checkbox_list[name="' + $(this).data('name') + '[]"]').prop('checked', false);
|
27 |
+
}
|
28 |
+
);
|
29 |
} );
|
js/media.js
CHANGED
@@ -376,10 +376,10 @@ jQuery( function ( $ ) {
|
|
376 |
//this.stopListening( this._frame );
|
377 |
this._frame.dispose();
|
378 |
}
|
379 |
-
|
380 |
this._frame = wp.media( {
|
381 |
className: 'media-frame rwmb-media-frame',
|
382 |
-
multiple:
|
383 |
title: i18nRwmbMedia.select,
|
384 |
editing: true,
|
385 |
library: {
|
376 |
//this.stopListening( this._frame );
|
377 |
this._frame.dispose();
|
378 |
}
|
379 |
+
var maxFiles = this.controller.get( 'maxFiles');
|
380 |
this._frame = wp.media( {
|
381 |
className: 'media-frame rwmb-media-frame',
|
382 |
+
multiple: maxFiles > 1 || maxFiles <= 0 ? 'add' : false,
|
383 |
title: i18nRwmbMedia.select,
|
384 |
editing: true,
|
385 |
library: {
|
js/validate.js
CHANGED
@@ -13,7 +13,7 @@ jQuery( function ( $ ) {
|
|
13 |
};
|
14 |
|
15 |
// Edit post form.
|
16 |
-
var $form = $( '#post' );
|
17 |
|
18 |
// Edit user form.
|
19 |
if ( ! $form.length ) {
|
13 |
};
|
14 |
|
15 |
// Edit post form.
|
16 |
+
var $form = $( '#post, .rwmb-form' );
|
17 |
|
18 |
// Edit user form.
|
19 |
if ( ! $form.length ) {
|
languages/meta-box-fa_IR.mo
CHANGED
Binary file
|
languages/meta-box-fa_IR.po
CHANGED
@@ -1,232 +1,180 @@
|
|
|
|
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
-
"Project-Id-Version: Meta Box\n"
|
4 |
-
"
|
5 |
-
"
|
6 |
-
"Last-Translator: \n"
|
7 |
-
"Language-Team: Sam Najian <samnajian@gmail.com>\n"
|
8 |
-
"Language: fa\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
"Plural-Forms: nplurals=1; plural=0;\n"
|
13 |
-
"
|
14 |
-
"X-Poedit-Basepath: ../../meta-box-builder\n"
|
15 |
-
"X-Poedit-WPHeader: meta-box.php\n"
|
16 |
-
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
-
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
|
18 |
-
"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;"
|
19 |
-
"_n_noop:1,2;_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
|
20 |
"X-Poedit-SearchPath-0: .\n"
|
21 |
-
"X-Poedit-
|
22 |
-
"X-Poedit-SearchPathExcluded-
|
|
|
|
|
|
|
23 |
|
24 |
-
#: inc/
|
|
|
|
|
|
|
|
|
25 |
msgid "Documentation"
|
26 |
-
msgstr ""
|
27 |
|
28 |
-
#: inc/core.php:
|
29 |
msgid "Extensions"
|
30 |
-
msgstr "
|
31 |
|
32 |
-
#: inc/
|
33 |
-
|
34 |
-
msgstr "افزودن +"
|
35 |
-
|
36 |
-
#: inc/fields/autocomplete.php:14 inc/fields/autocomplete.php:75
|
37 |
-
#: inc/fields/autocomplete.php:92
|
38 |
msgid "Delete"
|
39 |
msgstr "حذف"
|
40 |
|
41 |
-
#: inc/fields/button.php:
|
42 |
msgid "Click me"
|
43 |
-
msgstr "کلیک"
|
44 |
|
45 |
-
#: inc/fields/checkbox.php:
|
46 |
msgid "Yes"
|
47 |
msgstr "بله"
|
48 |
|
49 |
-
#: inc/fields/checkbox.php:
|
50 |
msgid "No"
|
51 |
msgstr "خیر"
|
52 |
|
53 |
-
#: inc/fields/file-input.php:
|
54 |
msgid "Select File"
|
55 |
msgstr "انتخاب فایل"
|
56 |
|
57 |
-
#: inc/fields/file-input.php:
|
58 |
msgid "Select"
|
59 |
msgstr "انتخاب"
|
60 |
|
61 |
-
#: inc/fields/file-input.php:
|
62 |
msgid "Remove"
|
63 |
msgstr "حذف"
|
64 |
|
65 |
-
#: inc/fields/file.php:
|
66 |
#, php-format
|
67 |
msgid "You may only upload maximum %d file"
|
68 |
-
msgstr "شما
|
69 |
|
70 |
-
#: inc/fields/file.php:
|
71 |
#, php-format
|
72 |
msgid "You may only upload maximum %d files"
|
73 |
-
msgstr "شما
|
74 |
|
75 |
-
#: inc/fields/file.php:
|
76 |
msgid "Error: Cannot delete file"
|
77 |
-
msgstr "
|
78 |
|
79 |
-
#: inc/fields/file.php:
|
80 |
-
msgctxt "file upload"
|
81 |
msgid "Upload Files"
|
82 |
-
msgstr "
|
83 |
|
84 |
-
#: inc/fields/file.php:
|
85 |
-
msgctxt "file upload"
|
86 |
msgid "+ Add new file"
|
87 |
-
msgstr "افزودن فایل جدید"
|
88 |
-
|
89 |
-
#: inc/fields/file.php:153
|
90 |
-
msgctxt "file upload"
|
91 |
-
msgid "Delete"
|
92 |
-
msgstr "حذف"
|
93 |
-
|
94 |
-
#: inc/fields/file.php:154
|
95 |
-
msgctxt "file upload"
|
96 |
-
msgid "Edit"
|
97 |
-
msgstr "ویرایش"
|
98 |
|
99 |
-
#: inc/fields/
|
100 |
-
msgctxt "image upload"
|
101 |
-
msgid "Upload Images"
|
102 |
-
msgstr "آپلود تصویر"
|
103 |
-
|
104 |
-
#: inc/fields/image.php:62
|
105 |
-
msgctxt "image upload"
|
106 |
-
msgid "+ Add new image"
|
107 |
-
msgstr "افزودن تصویر جدید + "
|
108 |
-
|
109 |
-
#: inc/fields/image.php:124
|
110 |
-
msgctxt "image upload"
|
111 |
-
msgid "Delete"
|
112 |
-
msgstr "حذف"
|
113 |
-
|
114 |
-
#: inc/fields/image.php:125
|
115 |
-
msgctxt "image upload"
|
116 |
msgid "Edit"
|
117 |
msgstr "ویرایش"
|
118 |
|
119 |
-
#: inc/fields/key-value.php:
|
120 |
msgid "Key"
|
121 |
msgstr "کلید"
|
122 |
|
123 |
-
#: inc/fields/key-value.php:
|
124 |
msgid "Value"
|
125 |
msgstr "مقدار"
|
126 |
|
127 |
-
#: inc/fields/map.php:
|
128 |
msgid "Find Address"
|
129 |
-
msgstr "
|
130 |
|
131 |
-
#: inc/fields/media.php:
|
132 |
-
msgctxt "media"
|
133 |
msgid "+ Add Media"
|
134 |
-
msgstr "افزودن
|
135 |
|
136 |
-
#: inc/fields/media.php:
|
137 |
-
msgctxt "media"
|
138 |
msgid " file"
|
139 |
-
msgstr "فایل"
|
140 |
|
141 |
-
#: inc/fields/media.php:
|
142 |
-
msgctxt "media"
|
143 |
msgid " files"
|
144 |
-
msgstr "
|
145 |
|
146 |
-
#: inc/fields/media.php:
|
147 |
-
msgctxt "media"
|
148 |
-
msgid "Remove"
|
149 |
-
msgstr "حذف"
|
150 |
-
|
151 |
-
#: inc/fields/media.php:22
|
152 |
-
msgctxt "media"
|
153 |
-
msgid "Edit"
|
154 |
-
msgstr "ویرایش"
|
155 |
-
|
156 |
-
#: inc/fields/media.php:23
|
157 |
-
msgctxt "media"
|
158 |
msgid "View"
|
159 |
msgstr "نمایش"
|
160 |
|
161 |
-
#: inc/fields/media.php:
|
162 |
-
msgctxt "media"
|
163 |
msgid "No Title"
|
164 |
msgstr "بدون عنوان"
|
165 |
|
166 |
-
#: inc/fields/media.php:
|
167 |
-
msgctxt "media"
|
168 |
msgid "Select Files"
|
169 |
-
msgstr "انتخاب
|
170 |
|
171 |
-
#: inc/fields/media.php:
|
172 |
-
|
|
|
|
|
|
|
173 |
msgid "Drop files here to upload"
|
174 |
-
msgstr "
|
175 |
|
176 |
-
#: inc/fields/oembed.php:
|
177 |
msgid "Embed HTML not available."
|
178 |
-
msgstr "
|
179 |
|
180 |
-
#: inc/fields/oembed.php:
|
181 |
msgid "Preview"
|
182 |
-
msgstr "
|
183 |
|
184 |
-
#: inc/fields/post.php:
|
185 |
msgid "Select a post"
|
186 |
msgstr "انتخاب یک پست"
|
187 |
|
188 |
-
#: inc/fields/post.php:
|
189 |
#, php-format
|
190 |
msgid "Select a %s"
|
191 |
msgstr "انتخاب یک %s"
|
192 |
|
193 |
-
#: inc/fields/select.php:
|
|
|
|
|
|
|
|
|
194 |
msgid "All"
|
195 |
msgstr "همه"
|
196 |
|
197 |
-
#: inc/fields/select.php:
|
198 |
msgid "None"
|
199 |
-
msgstr "
|
200 |
|
201 |
-
#: inc/fields/taxonomy.php:
|
202 |
msgid "Select a term"
|
203 |
-
msgstr "انتخاب
|
204 |
|
205 |
-
#: inc/fields/
|
|
|
|
|
|
|
|
|
206 |
msgid "Select an user"
|
207 |
-
msgstr "انتخاب کاربر"
|
208 |
|
209 |
-
#: inc/validation.php:
|
210 |
msgid "Please correct the errors highlighted below and try again."
|
211 |
-
msgstr "لطفا خطاهای زیر را تصحیح
|
212 |
-
|
213 |
-
#. Plugin Name of the plugin/theme
|
214 |
-
msgid "Meta Box"
|
215 |
-
msgstr "جعبه متا"
|
216 |
-
|
217 |
-
#. Plugin URI of the plugin/theme
|
218 |
-
msgid "https://metabox.io"
|
219 |
-
msgstr "http://samnajian.com"
|
220 |
-
|
221 |
-
#. Description of the plugin/theme
|
222 |
-
msgid ""
|
223 |
-
"Create custom meta boxes and custom fields for any post type in WordPress."
|
224 |
-
msgstr "ایجاد متاباکس و فیلد دلخواه برای هر نوع پست "
|
225 |
-
|
226 |
-
#. Author of the plugin/theme
|
227 |
-
msgid "Rilwis"
|
228 |
-
msgstr ""
|
229 |
-
|
230 |
-
#. Author URI of the plugin/theme
|
231 |
-
msgid "http://www.deluxeblogtips.com"
|
232 |
-
msgstr ""
|
1 |
+
# <!=Copyright (C) 2014 Rilwis
|
2 |
+
# This file is distributed under the GPL2+.=!>
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Meta Box 4.8.7\n"
|
6 |
+
"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/meta-box\n"
|
7 |
+
"POT-Creation-Date: 2017-05-13 22:34+0430\n"
|
|
|
|
|
|
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2017-05-13 22:51+0430\n"
|
12 |
+
"Language-Team: Meta Box <admin@metabox.io>\n"
|
13 |
+
"X-Generator: Poedit 1.8.6\n"
|
14 |
+
"X-Poedit-KeywordsList: __;_x;_e;_ex;_n;_nx;esc_attr__;esc_attr_e;esc_attr_x;esc_html__;esc_html_e;esc_html_x;_n_noop;_nx_noop\n"
|
15 |
+
"X-Poedit-Basepath: ..\n"
|
16 |
+
"Last-Translator: Morteza Gholami <Morteza.Gholami@Yahoo.Com>\n"
|
17 |
"Plural-Forms: nplurals=1; plural=0;\n"
|
18 |
+
"Language: fa_IR\n"
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
"X-Poedit-SearchPath-0: .\n"
|
20 |
+
"X-Poedit-SearchPathExcluded-0: js\n"
|
21 |
+
"X-Poedit-SearchPathExcluded-1: demo\n"
|
22 |
+
"X-Poedit-SearchPathExcluded-2: tests\n"
|
23 |
+
"X-Poedit-SearchPathExcluded-3: css\n"
|
24 |
+
"X-Poedit-SearchPathExcluded-4: lang\n"
|
25 |
|
26 |
+
#: inc/clone.php:98
|
27 |
+
msgid "+ Add more"
|
28 |
+
msgstr "+ افزودن بیشتر"
|
29 |
+
|
30 |
+
#: inc/core.php:42
|
31 |
msgid "Documentation"
|
32 |
+
msgstr "مستندات"
|
33 |
|
34 |
+
#: inc/core.php:43
|
35 |
msgid "Extensions"
|
36 |
+
msgstr "افزونهها"
|
37 |
|
38 |
+
#: inc/fields/autocomplete.php:19 inc/fields/autocomplete.php:78
|
39 |
+
#: inc/fields/autocomplete.php:93 inc/fields/file.php:154
|
|
|
|
|
|
|
|
|
40 |
msgid "Delete"
|
41 |
msgstr "حذف"
|
42 |
|
43 |
+
#: inc/fields/button.php:32
|
44 |
msgid "Click me"
|
45 |
+
msgstr "کلیک کنید"
|
46 |
|
47 |
+
#: inc/fields/checkbox.php:57
|
48 |
msgid "Yes"
|
49 |
msgstr "بله"
|
50 |
|
51 |
+
#: inc/fields/checkbox.php:57
|
52 |
msgid "No"
|
53 |
msgstr "خیر"
|
54 |
|
55 |
+
#: inc/fields/file-input.php:21
|
56 |
msgid "Select File"
|
57 |
msgstr "انتخاب فایل"
|
58 |
|
59 |
+
#: inc/fields/file-input.php:43 inc/fields/select.php:89
|
60 |
msgid "Select"
|
61 |
msgstr "انتخاب"
|
62 |
|
63 |
+
#: inc/fields/file-input.php:45 inc/fields/media.php:24
|
64 |
msgid "Remove"
|
65 |
msgstr "حذف"
|
66 |
|
67 |
+
#: inc/fields/file.php:20
|
68 |
#, php-format
|
69 |
msgid "You may only upload maximum %d file"
|
70 |
+
msgstr "شما تنها میبایست نهایتا %d فایل بارگذاری کنید"
|
71 |
|
72 |
+
#: inc/fields/file.php:21
|
73 |
#, php-format
|
74 |
msgid "You may only upload maximum %d files"
|
75 |
+
msgstr "شما تنها میبایست نهایتا %d فایل بارگذاری کنید"
|
76 |
|
77 |
+
#: inc/fields/file.php:77
|
78 |
msgid "Error: Cannot delete file"
|
79 |
+
msgstr "خطا: عدم توانایی حذف فایل"
|
80 |
|
81 |
+
#: inc/fields/file.php:89
|
|
|
82 |
msgid "Upload Files"
|
83 |
+
msgstr "بارگذاری فایلها"
|
84 |
|
85 |
+
#: inc/fields/file.php:90
|
|
|
86 |
msgid "+ Add new file"
|
87 |
+
msgstr "+ افزودن فایل جدید"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
|
89 |
+
#: inc/fields/file.php:155 inc/fields/media.php:25
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
msgid "Edit"
|
91 |
msgstr "ویرایش"
|
92 |
|
93 |
+
#: inc/fields/key-value.php:116
|
94 |
msgid "Key"
|
95 |
msgstr "کلید"
|
96 |
|
97 |
+
#: inc/fields/key-value.php:117
|
98 |
msgid "Value"
|
99 |
msgstr "مقدار"
|
100 |
|
101 |
+
#: inc/fields/map.php:60
|
102 |
msgid "Find Address"
|
103 |
+
msgstr "پیدا کردن آدرس"
|
104 |
|
105 |
+
#: inc/fields/media.php:21
|
|
|
106 |
msgid "+ Add Media"
|
107 |
+
msgstr "+ افزودن رسانه"
|
108 |
|
109 |
+
#: inc/fields/media.php:22
|
|
|
110 |
msgid " file"
|
111 |
+
msgstr " فایل"
|
112 |
|
113 |
+
#: inc/fields/media.php:23
|
|
|
114 |
msgid " files"
|
115 |
+
msgstr " فایلها"
|
116 |
|
117 |
+
#: inc/fields/media.php:26
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
msgid "View"
|
119 |
msgstr "نمایش"
|
120 |
|
121 |
+
#: inc/fields/media.php:27
|
|
|
122 |
msgid "No Title"
|
123 |
msgstr "بدون عنوان"
|
124 |
|
125 |
+
#: inc/fields/media.php:30
|
|
|
126 |
msgid "Select Files"
|
127 |
+
msgstr "انتخاب فایلها"
|
128 |
|
129 |
+
#: inc/fields/media.php:31
|
130 |
+
msgid "or"
|
131 |
+
msgstr "یا"
|
132 |
+
|
133 |
+
#: inc/fields/media.php:32
|
134 |
msgid "Drop files here to upload"
|
135 |
+
msgstr "فایلها را برای بارگذاری اینجا بیاندازید"
|
136 |
|
137 |
+
#: inc/fields/oembed.php:64
|
138 |
msgid "Embed HTML not available."
|
139 |
+
msgstr "قراردادن HTML امکانپذیر نیست"
|
140 |
|
141 |
+
#: inc/fields/oembed.php:79
|
142 |
msgid "Preview"
|
143 |
+
msgstr "پیشنمایش"
|
144 |
|
145 |
+
#: inc/fields/post.php:38
|
146 |
msgid "Select a post"
|
147 |
msgstr "انتخاب یک پست"
|
148 |
|
149 |
+
#: inc/fields/post.php:41 inc/fields/taxonomy.php:56
|
150 |
#, php-format
|
151 |
msgid "Select a %s"
|
152 |
msgstr "انتخاب یک %s"
|
153 |
|
154 |
+
#: inc/fields/select-advanced.php:46
|
155 |
+
msgid "Select an item"
|
156 |
+
msgstr "انتخاب یک آیتم"
|
157 |
+
|
158 |
+
#: inc/fields/select.php:89
|
159 |
msgid "All"
|
160 |
msgstr "همه"
|
161 |
|
162 |
+
#: inc/fields/select.php:89
|
163 |
msgid "None"
|
164 |
+
msgstr "هیچکدام"
|
165 |
|
166 |
+
#: inc/fields/taxonomy.php:53
|
167 |
msgid "Select a term"
|
168 |
+
msgstr "انتخاب یک دسته"
|
169 |
|
170 |
+
#: inc/fields/thickbox-image.php:55
|
171 |
+
msgid "Upload Images"
|
172 |
+
msgstr "بارگذاری تصاویر"
|
173 |
+
|
174 |
+
#: inc/fields/user.php:38
|
175 |
msgid "Select an user"
|
176 |
+
msgstr "انتخاب یک کاربر"
|
177 |
|
178 |
+
#: inc/validation.php:47
|
179 |
msgid "Please correct the errors highlighted below and try again."
|
180 |
+
msgstr "لطفا خطاهای پررنگ شده زیر را تصحیح و مجددا تلاش نمایید."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
meta-box.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
* Plugin Name: Meta Box
|
4 |
* Plugin URI: https://metabox.io
|
5 |
* Description: Create custom meta boxes and custom fields in WordPress.
|
6 |
-
* Version: 4.11
|
7 |
-
* Author:
|
8 |
-
* Author URI:
|
9 |
* License: GPL2+
|
10 |
* Text Domain: meta-box
|
11 |
* Domain Path: /languages/
|
3 |
* Plugin Name: Meta Box
|
4 |
* Plugin URI: https://metabox.io
|
5 |
* Description: Create custom meta boxes and custom fields in WordPress.
|
6 |
+
* Version: 4.11.1
|
7 |
+
* Author: MetaBox.io
|
8 |
+
* Author URI: https://metabox.io
|
9 |
* License: GPL2+
|
10 |
* Text Domain: meta-box
|
11 |
* Domain Path: /languages/
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: metabox, rilwis, fitwp, f-j-kaiser, funkatronic, PerWiklander, rua
|
|
3 |
Donate link: http://paypal.me/anhtnt
|
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: 4.1
|
6 |
-
Tested up to: 4.7.
|
7 |
-
Stable tag: 4.11
|
8 |
License: GPLv2 or later
|
9 |
|
10 |
Meta Box plugin is a powerful, professional developer toolkit to create custom meta boxes and custom fields for WordPress.
|
@@ -17,23 +17,43 @@ The plugin provides a **wide range of field types** and **a lot of options to fo
|
|
17 |
|
18 |
With the extensions, you can easily build meta boxes not only for custom post types (default), but also for **settings page, user meta, term meta**. You can also display the fields the way you want with columns, tabs or groups.
|
19 |
|
20 |
-
The plugin
|
21 |
|
22 |
### Features
|
23 |
|
|
|
|
|
24 |
* Create custom meta boxes for posts, pages or any custom post type.
|
25 |
* Create custom [settings pages or theme option page](https://metabox.io/plugins/mb-settings-page/).
|
26 |
* Create custom meta boxes for [user profile pages](https://metabox.io/plugins/mb-user-meta/).
|
27 |
* Create custom meta boxes for [taxonomy terms](https://metabox.io/plugins/mb-term-meta/).
|
|
|
|
|
|
|
28 |
* Supports 40+ built-in [field types](https://metabox.io/docs/define-fields/) for all your needs (text, textarea, wysiwyg/editor, image, file, post, select, checkbox, radio buttons, date time picker, taxonomy, user, oembed and more to come!). You can also [create your own field type](https://metabox.io/docs/create-field-type/) easily.
|
29 |
* Support cloning (repeatable) fields for most field types, including WYSIWYG/editor field. Also support [repeatable field groups](https://metabox.io/plugins/meta-box-group/).
|
30 |
* Powerful [actions and filters](https://metabox.io/docs-category/reference/) that developers can build or change the appearance and behavior in the plugin.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
* Uses the [native WordPress meta data storage](https://metabox.io/docs/how-post-meta-is-saved-in-the-database/) and functions for ease of use and fast processing.
|
32 |
* [Easily integrate with themes and plugins](https://metabox.io/docs/include-meta-box-plugin-themes/).
|
33 |
* [Works with Composer](https://metabox.io/docs/using-meta-box-composer/) if you want to include the plugin in your project.
|
34 |
* Compatible with WPML multilingual plugin (officially supported by WPML team).
|
35 |
|
36 |
-
|
|
|
|
|
37 |
|
38 |
- [Getting Started](https://metabox.io/docs/getting-started/)
|
39 |
- [Register Meta Boxes](https://metabox.io/docs/registering-meta-boxes/)
|
@@ -44,14 +64,22 @@ See more documentation [here](https://metabox.io/docs/).
|
|
44 |
|
45 |
### Extensions
|
46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
- [MB User Meta](https://metabox.io/plugins/mb-user-meta/): Add custom fields to user profile (user meta) quickly with simple syntax.
|
48 |
- [Meta Box Geolocation](https://metabox.io/plugins/meta-box-geolocation/): Automatically and instantly populate location data with the power of Google Maps Geolocation API.
|
49 |
- [MB Admin Columns](https://metabox.io/plugins/mb-admin-columns/): Display custom fields in table columns in admin screens for All Posts (types).
|
50 |
- [MB Term Meta](https://metabox.io/plugins/mb-term-meta/): Add meta data to categories, tags or any custom taxonomy with simple syntax.
|
51 |
- [MB Settings Page](https://metabox.io/plugins/mb-settings-page/): Create settings pages for themes, plugins or websites with beautiful syntax.
|
52 |
-
- [MB Custom Post Type](https://wordpress.org/plugins/mb-custom-post-type/): Create and manage custom post types and taxonomies easily in WordPress with an easy-to-use interface.
|
53 |
-
- [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.
|
54 |
-
- [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.
|
55 |
- [Meta Box Conditional Logic](https://metabox.io/plugins/meta-box-conditional-logic/): Add visibility dependency for custom meta boxes and custom fields in WordPress.
|
56 |
- [Meta Box Group](https://metabox.io/plugins/meta-box-group/): Create repeatable groups of custom fields for better appearance and structure.
|
57 |
- [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.
|
@@ -73,11 +101,20 @@ See all extensions [here](https://metabox.io/plugins/).
|
|
73 |
|
74 |
== Installation ==
|
75 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
1. Unzip the download package
|
77 |
1. Upload `meta-box` to the `/wp-content/plugins/` directory
|
78 |
1. Activate the plugin through the 'Plugins' menu in WordPress
|
79 |
|
80 |
-
To getting started with the plugin
|
81 |
|
82 |
== Frequently Asked Questions ==
|
83 |
|
@@ -91,6 +128,18 @@ To getting started with the plugin API, please read [this tutorial](https://meta
|
|
91 |
|
92 |
== Changelog ==
|
93 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
= 4.11 =
|
95 |
|
96 |
* Code architecture update:
|
3 |
Donate link: http://paypal.me/anhtnt
|
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: 4.1
|
6 |
+
Tested up to: 4.7.4
|
7 |
+
Stable tag: 4.11.1
|
8 |
License: GPLv2 or later
|
9 |
|
10 |
Meta Box plugin is a powerful, professional developer toolkit to create custom meta boxes and custom fields for WordPress.
|
17 |
|
18 |
With the extensions, you can easily build meta boxes not only for custom post types (default), but also for **settings page, user meta, term meta**. You can also display the fields the way you want with columns, tabs or groups.
|
19 |
|
20 |
+
The plugin requires a little coding, but if you're not familiar with coding or prefer GUI for faster creating custom post types, meta boxes and custom fields, you can use our [Online Generator](https://metabox.io/online-generator/) or use the extensions [MB Custom Post Type](https://wordpress.org/plugins/mb-custom-post-type/) or [Meta Box Builder](https://metabox.io/plugins/meta-box-builder/).
|
21 |
|
22 |
### Features
|
23 |
|
24 |
+
#### Create any type of meta data
|
25 |
+
|
26 |
* Create custom meta boxes for posts, pages or any custom post type.
|
27 |
* Create custom [settings pages or theme option page](https://metabox.io/plugins/mb-settings-page/).
|
28 |
* Create custom meta boxes for [user profile pages](https://metabox.io/plugins/mb-user-meta/).
|
29 |
* Create custom meta boxes for [taxonomy terms](https://metabox.io/plugins/mb-term-meta/).
|
30 |
+
|
31 |
+
#### Wide-range of field types and options
|
32 |
+
|
33 |
* Supports 40+ built-in [field types](https://metabox.io/docs/define-fields/) for all your needs (text, textarea, wysiwyg/editor, image, file, post, select, checkbox, radio buttons, date time picker, taxonomy, user, oembed and more to come!). You can also [create your own field type](https://metabox.io/docs/create-field-type/) easily.
|
34 |
* Support cloning (repeatable) fields for most field types, including WYSIWYG/editor field. Also support [repeatable field groups](https://metabox.io/plugins/meta-box-group/).
|
35 |
* Powerful [actions and filters](https://metabox.io/docs-category/reference/) that developers can build or change the appearance and behavior in the plugin.
|
36 |
+
|
37 |
+
#### Create meta boxes and custom fields with UI
|
38 |
+
|
39 |
+
The plugin is built mostly for developers with a little coding, but if you prefer GUI for faster creating custom post types, meta boxes and custom fields, the plugin has extensions for that:
|
40 |
+
|
41 |
+
- [Online Generator](https://metabox.io/online-generator/)
|
42 |
+
- [MB Custom Post Type](https://wordpress.org/plugins/mb-custom-post-type/)
|
43 |
+
- [Meta Box Builder](https://metabox.io/plugins/meta-box-builder/)
|
44 |
+
|
45 |
+
<blockquote>To make it easy for all users to create custom meta boxes and custom fields, we have created an <a href="https://metabox.io/online-generator/">Online Generator</a> tool. It has an user-friendly interface with drag and drop features. No custom code anymore!</blockquote>
|
46 |
+
|
47 |
+
#### Developer-friendly
|
48 |
+
|
49 |
* Uses the [native WordPress meta data storage](https://metabox.io/docs/how-post-meta-is-saved-in-the-database/) and functions for ease of use and fast processing.
|
50 |
* [Easily integrate with themes and plugins](https://metabox.io/docs/include-meta-box-plugin-themes/).
|
51 |
* [Works with Composer](https://metabox.io/docs/using-meta-box-composer/) if you want to include the plugin in your project.
|
52 |
* Compatible with WPML multilingual plugin (officially supported by WPML team).
|
53 |
|
54 |
+
#### Detailed Documentation
|
55 |
+
|
56 |
+
We provide regular updated and extensive documentation. Not only technical things, but also tutorials on how to use the plugin better.
|
57 |
|
58 |
- [Getting Started](https://metabox.io/docs/getting-started/)
|
59 |
- [Register Meta Boxes](https://metabox.io/docs/registering-meta-boxes/)
|
64 |
|
65 |
### Extensions
|
66 |
|
67 |
+
#### Free Extensions
|
68 |
+
|
69 |
+
- [MB Custom Post Type](https://wordpress.org/plugins/mb-custom-post-type/): Create and manage custom post types and taxonomies easily in WordPress with an easy-to-use interface.
|
70 |
+
- [MB Custom Taxonomy](https://metabox.io/plugins/custom-taxonomy/): Create and manage custom taxonomies with an easy-to-use interface in WordPress.
|
71 |
+
- [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.
|
72 |
+
- [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.
|
73 |
+
- [MB Rest API](https://metabox.io/plugins/mb-rest-api/): Pull all meta value from posts, terms into the WP REST API responses.
|
74 |
+
|
75 |
+
#### Premium Extensions
|
76 |
+
|
77 |
+
- [MB Frontend Submission](https://metabox.io/plugins/mb-frontend-submission/): Create frontend forms for users to submit custom content. Embed everywhere with shortcode.
|
78 |
- [MB User Meta](https://metabox.io/plugins/mb-user-meta/): Add custom fields to user profile (user meta) quickly with simple syntax.
|
79 |
- [Meta Box Geolocation](https://metabox.io/plugins/meta-box-geolocation/): Automatically and instantly populate location data with the power of Google Maps Geolocation API.
|
80 |
- [MB Admin Columns](https://metabox.io/plugins/mb-admin-columns/): Display custom fields in table columns in admin screens for All Posts (types).
|
81 |
- [MB Term Meta](https://metabox.io/plugins/mb-term-meta/): Add meta data to categories, tags or any custom taxonomy with simple syntax.
|
82 |
- [MB Settings Page](https://metabox.io/plugins/mb-settings-page/): Create settings pages for themes, plugins or websites with beautiful syntax.
|
|
|
|
|
|
|
83 |
- [Meta Box Conditional Logic](https://metabox.io/plugins/meta-box-conditional-logic/): Add visibility dependency for custom meta boxes and custom fields in WordPress.
|
84 |
- [Meta Box Group](https://metabox.io/plugins/meta-box-group/): Create repeatable groups of custom fields for better appearance and structure.
|
85 |
- [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.
|
101 |
|
102 |
== Installation ==
|
103 |
|
104 |
+
From within WordPress
|
105 |
+
|
106 |
+
1. Visit **Plugins > Add New**
|
107 |
+
1. Search for **Meta Box**
|
108 |
+
1. Click the **Install Now** button to install the plugin
|
109 |
+
1. Click the **Activate** button to activate the plugin
|
110 |
+
|
111 |
+
Manually
|
112 |
+
|
113 |
1. Unzip the download package
|
114 |
1. Upload `meta-box` to the `/wp-content/plugins/` directory
|
115 |
1. Activate the plugin through the 'Plugins' menu in WordPress
|
116 |
|
117 |
+
To getting started with the plugin, please read [this tutorial](https://metabox.io/docs/getting-started/).
|
118 |
|
119 |
== Frequently Asked Questions ==
|
120 |
|
128 |
|
129 |
== Changelog ==
|
130 |
|
131 |
+
= 4.11.1 =
|
132 |
+
|
133 |
+
* Added button for "Check/Uncheck all options" in input list field when type is `checkbox_list`. Props @mrbrazzi.
|
134 |
+
* Select multiple images now does not require to press "Shift".
|
135 |
+
* Change button field to actual button element.
|
136 |
+
* Fix scripts and styles dependencies
|
137 |
+
* Fix bug for select tree when parent not set
|
138 |
+
* Add sanitize post type in case users use CamelCase in post type name
|
139 |
+
* Increase z-index of datepicker to prevent overlap with top menu bar
|
140 |
+
* Make compatible with MB Admin Columns and MB Frontend Submission extensions
|
141 |
+
* Update Persian translation. Credit Morteza Gholami
|
142 |
+
|
143 |
= 4.11 =
|
144 |
|
145 |
* Code architecture update:
|