Version Description
- Module: Dynamic Post Type & Taxonomy now deregister post types /taxonomies that have been deleted (or trashed) via the Tools > Post Types / Taxonomies
- Module: Dynamic Post Type & Taxonomy now register post types / taxonomies in ASC order
- Module: Dynamic Post Type - Fixed a bug where hierarchical post types had a query error in the admin archive
- General: Improved the ACF Pro dependency style in plugins list when ACF Pro isn't activated
- Plugin: Readme - Reworked structure
- Plugin: Readme - Added Supporters section
- Plugin: Readme - Trying to implement emojis
Download this release
Release Info
Developer | hwk-fr |
Plugin | Advanced Custom Fields: Extended |
Version | 0.6.3 |
Comparing to | |
See all releases |
Code changes from version 0.6.1 to 0.6.3
- acf-extended.php +3 -3
- includes/modules/dynamic-post-type.php +88 -21
- includes/modules/dynamic-taxonomy.php +82 -0
- init.php +33 -6
- readme.txt +52 -26
acf-extended.php
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
/**
|
3 |
* Plugin Name: Advanced Custom Fields: Extended
|
4 |
* Description: Enhancement Suite which improves Advanced Custom Fields administration
|
5 |
-
* Version: 0.6.
|
6 |
-
* Author:
|
7 |
-
* Author URI: https://
|
8 |
* Text Domain: acfe
|
9 |
*/
|
10 |
|
2 |
/**
|
3 |
* Plugin Name: Advanced Custom Fields: Extended
|
4 |
* Description: Enhancement Suite which improves Advanced Custom Fields administration
|
5 |
+
* Version: 0.6.3
|
6 |
+
* Author: ACF Extended
|
7 |
+
* Author URI: https://www.acf-extended.com
|
8 |
* Text Domain: acfe
|
9 |
*/
|
10 |
|
includes/modules/dynamic-post-type.php
CHANGED
@@ -257,6 +257,9 @@ function acfe_dpt_filter_save($post_id){
|
|
257 |
// Create ACFE option
|
258 |
$option[$name] = $register_args;
|
259 |
|
|
|
|
|
|
|
260 |
// Update ACFE option
|
261 |
update_option('acfe_dynamic_post_types', $option);
|
262 |
|
@@ -265,6 +268,85 @@ function acfe_dpt_filter_save($post_id){
|
|
265 |
|
266 |
}
|
267 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
268 |
/**
|
269 |
* Filter Admin: List
|
270 |
*/
|
@@ -277,24 +359,15 @@ function acfe_dpt_filter_admin_list($query){
|
|
277 |
$post_type = $query->get('post_type');
|
278 |
$post_type_obj = get_post_type_object($post_type);
|
279 |
|
280 |
-
$acfe_archive_ppp = (isset($post_type_obj->acfe_archive_ppp) && !empty($post_type_obj->acfe_archive_ppp));
|
281 |
$acfe_archive_orderby = (isset($post_type_obj->acfe_archive_orderby) && !empty($post_type_obj->acfe_archive_orderby));
|
282 |
$acfe_archive_order = (isset($post_type_obj->acfe_archive_order) && !empty($post_type_obj->acfe_archive_order));
|
283 |
|
284 |
-
if($
|
285 |
-
$query->set('posts_per_page', $post_type_obj->acfe_archive_ppp);
|
286 |
-
$query->query['posts_per_page'] = $post_type_obj->acfe_archive_ppp;
|
287 |
-
}
|
288 |
-
|
289 |
-
if($acfe_archive_orderby){
|
290 |
$query->set('orderby', $post_type_obj->acfe_archive_orderby);
|
291 |
-
$query->query['orderby'] = $post_type_obj->acfe_archive_orderby;
|
292 |
-
}
|
293 |
|
294 |
-
if($acfe_archive_order)
|
295 |
$query->set('order', $post_type_obj->acfe_archive_order);
|
296 |
-
|
297 |
-
}
|
298 |
|
299 |
}
|
300 |
|
@@ -332,20 +405,14 @@ function acfe_dpt_filter_front_list($query){
|
|
332 |
$acfe_archive_orderby = (isset($post_type_obj->acfe_archive_orderby) && !empty($post_type_obj->acfe_archive_orderby));
|
333 |
$acfe_archive_order = (isset($post_type_obj->acfe_archive_order) && !empty($post_type_obj->acfe_archive_order));
|
334 |
|
335 |
-
if($acfe_archive_ppp)
|
336 |
$query->set('posts_per_page', $post_type_obj->acfe_archive_ppp);
|
337 |
-
$query->query['posts_per_page'] = $post_type_obj->acfe_archive_ppp;
|
338 |
-
}
|
339 |
|
340 |
-
if($acfe_archive_orderby)
|
341 |
$query->set('orderby', $post_type_obj->acfe_archive_orderby);
|
342 |
-
$query->query['orderby'] = $post_type_obj->acfe_archive_orderby;
|
343 |
-
}
|
344 |
|
345 |
-
if($acfe_archive_order)
|
346 |
$query->set('order', $post_type_obj->acfe_archive_order);
|
347 |
-
$query->query['order'] = $post_type_obj->acfe_archive_order;
|
348 |
-
}
|
349 |
|
350 |
}
|
351 |
|
257 |
// Create ACFE option
|
258 |
$option[$name] = $register_args;
|
259 |
|
260 |
+
// Sort keys ASC
|
261 |
+
ksort($option);
|
262 |
+
|
263 |
// Update ACFE option
|
264 |
update_option('acfe_dynamic_post_types', $option);
|
265 |
|
268 |
|
269 |
}
|
270 |
|
271 |
+
/**
|
272 |
+
* Dynamic Post Type Status Publish > Trash
|
273 |
+
*/
|
274 |
+
add_action('publish_to_trash', 'acfe_dpt_filter_status_trash');
|
275 |
+
function acfe_dpt_filter_status_trash($post){
|
276 |
+
|
277 |
+
if(get_post_type($post->ID) != 'acfe-dpt')
|
278 |
+
return;
|
279 |
+
|
280 |
+
$post_id = $post->ID;
|
281 |
+
$name = get_field('acfe_dpt_name', $post_id);
|
282 |
+
|
283 |
+
// Get ACFE option
|
284 |
+
$option = get_option('acfe_dynamic_post_types', array());
|
285 |
+
|
286 |
+
// Check ACFE option
|
287 |
+
if(isset($option[$name]))
|
288 |
+
unset($option[$name]);
|
289 |
+
|
290 |
+
// Update ACFE option
|
291 |
+
update_option('acfe_dynamic_post_types', $option);
|
292 |
+
|
293 |
+
// Flush permalinks
|
294 |
+
flush_rewrite_rules();
|
295 |
+
|
296 |
+
}
|
297 |
+
|
298 |
+
/**
|
299 |
+
* Dynamic Post Type Status Trash > Publish
|
300 |
+
*/
|
301 |
+
add_action('trash_to_publish', 'acfe_dpt_filter_status_publish');
|
302 |
+
function acfe_dpt_filter_status_publish($post){
|
303 |
+
|
304 |
+
if(get_post_type($post->ID) != 'acfe-dpt')
|
305 |
+
return;
|
306 |
+
|
307 |
+
acfe_dpt_filter_save($post->ID);
|
308 |
+
|
309 |
+
}
|
310 |
+
|
311 |
+
/**
|
312 |
+
* Dynamic Post Type Admin: List
|
313 |
+
*/
|
314 |
+
add_action('pre_get_posts', 'acfe_dpt_admin_pre_get_posts');
|
315 |
+
function acfe_dpt_admin_pre_get_posts($query){
|
316 |
+
|
317 |
+
if(!is_admin() || !$query->is_main_query())
|
318 |
+
return;
|
319 |
+
|
320 |
+
global $pagenow;
|
321 |
+
if($pagenow != 'edit.php')
|
322 |
+
return;
|
323 |
+
|
324 |
+
$post_type = $query->get('post_type');
|
325 |
+
if($post_type != 'acfe-dpt')
|
326 |
+
return;
|
327 |
+
|
328 |
+
$query->set('orderby', 'name');
|
329 |
+
$query->set('order', 'ASC');
|
330 |
+
|
331 |
+
}
|
332 |
+
|
333 |
+
/**
|
334 |
+
* Dynamic Post Type Admin: Posts Per Page
|
335 |
+
*/
|
336 |
+
add_filter('edit_posts_per_page', 'acfe_dpt_admin_ppp', 10, 2);
|
337 |
+
function acfe_dpt_admin_ppp($ppp, $post_type){
|
338 |
+
|
339 |
+
if($post_type != 'acfe-dpt')
|
340 |
+
return $ppp;
|
341 |
+
|
342 |
+
global $pagenow;
|
343 |
+
if($pagenow != 'edit.php')
|
344 |
+
return $ppp;
|
345 |
+
|
346 |
+
return 999;
|
347 |
+
|
348 |
+
}
|
349 |
+
|
350 |
/**
|
351 |
* Filter Admin: List
|
352 |
*/
|
359 |
$post_type = $query->get('post_type');
|
360 |
$post_type_obj = get_post_type_object($post_type);
|
361 |
|
|
|
362 |
$acfe_archive_orderby = (isset($post_type_obj->acfe_archive_orderby) && !empty($post_type_obj->acfe_archive_orderby));
|
363 |
$acfe_archive_order = (isset($post_type_obj->acfe_archive_order) && !empty($post_type_obj->acfe_archive_order));
|
364 |
|
365 |
+
if($acfe_archive_orderby)
|
|
|
|
|
|
|
|
|
|
|
366 |
$query->set('orderby', $post_type_obj->acfe_archive_orderby);
|
|
|
|
|
367 |
|
368 |
+
if($acfe_archive_order)
|
369 |
$query->set('order', $post_type_obj->acfe_archive_order);
|
370 |
+
|
|
|
371 |
|
372 |
}
|
373 |
|
405 |
$acfe_archive_orderby = (isset($post_type_obj->acfe_archive_orderby) && !empty($post_type_obj->acfe_archive_orderby));
|
406 |
$acfe_archive_order = (isset($post_type_obj->acfe_archive_order) && !empty($post_type_obj->acfe_archive_order));
|
407 |
|
408 |
+
if($acfe_archive_ppp)
|
409 |
$query->set('posts_per_page', $post_type_obj->acfe_archive_ppp);
|
|
|
|
|
410 |
|
411 |
+
if($acfe_archive_orderby)
|
412 |
$query->set('orderby', $post_type_obj->acfe_archive_orderby);
|
|
|
|
|
413 |
|
414 |
+
if($acfe_archive_order)
|
415 |
$query->set('order', $post_type_obj->acfe_archive_order);
|
|
|
|
|
416 |
|
417 |
}
|
418 |
|
includes/modules/dynamic-taxonomy.php
CHANGED
@@ -222,6 +222,36 @@ function acfe_dt_filter_save($post_id){
|
|
222 |
// Create ACFE option
|
223 |
$option[$name] = $register_args;
|
224 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
225 |
// Update ACFE option
|
226 |
update_option('acfe_dynamic_taxonomies', $option);
|
227 |
|
@@ -230,6 +260,58 @@ function acfe_dt_filter_save($post_id){
|
|
230 |
|
231 |
}
|
232 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
/**
|
234 |
* Filter Admin: List
|
235 |
*/
|
222 |
// Create ACFE option
|
223 |
$option[$name] = $register_args;
|
224 |
|
225 |
+
// Sort keys ASC
|
226 |
+
ksort($option);
|
227 |
+
|
228 |
+
// Update ACFE option
|
229 |
+
update_option('acfe_dynamic_taxonomies', $option);
|
230 |
+
|
231 |
+
// Flush permalinks
|
232 |
+
flush_rewrite_rules();
|
233 |
+
|
234 |
+
}
|
235 |
+
|
236 |
+
/**
|
237 |
+
* Dynamic Taxonomy Status Publish > Trash
|
238 |
+
*/
|
239 |
+
add_action('publish_to_trash', 'acfe_dt_filter_status_trash');
|
240 |
+
function acfe_dt_filter_status_trash($post){
|
241 |
+
|
242 |
+
if(get_post_type($post->ID) != 'acfe-dt')
|
243 |
+
return;
|
244 |
+
|
245 |
+
$post_id = $post->ID;
|
246 |
+
$name = get_field('acfe_dt_name', $post_id);
|
247 |
+
|
248 |
+
// Get ACFE option
|
249 |
+
$option = get_option('acfe_dynamic_taxonomies', array());
|
250 |
+
|
251 |
+
// Check ACFE option
|
252 |
+
if(isset($option[$name]))
|
253 |
+
unset($option[$name]);
|
254 |
+
|
255 |
// Update ACFE option
|
256 |
update_option('acfe_dynamic_taxonomies', $option);
|
257 |
|
260 |
|
261 |
}
|
262 |
|
263 |
+
/**
|
264 |
+
* Dynamic Taxonomy Status Trash > Publish
|
265 |
+
*/
|
266 |
+
add_action('trash_to_publish', 'acfe_dt_filter_status_publish');
|
267 |
+
function acfe_dt_filter_status_publish($post){
|
268 |
+
|
269 |
+
if(get_post_type($post->ID) != 'acfe-dt')
|
270 |
+
return;
|
271 |
+
|
272 |
+
acfe_dt_filter_save($post->ID);
|
273 |
+
|
274 |
+
}
|
275 |
+
|
276 |
+
/**
|
277 |
+
* Dynamic Taxonomy Admin: List
|
278 |
+
*/
|
279 |
+
add_action('pre_get_posts', 'acfe_dt_admin_pre_get_posts');
|
280 |
+
function acfe_dt_admin_pre_get_posts($query){
|
281 |
+
|
282 |
+
if(!is_admin() || !$query->is_main_query())
|
283 |
+
return;
|
284 |
+
|
285 |
+
global $pagenow;
|
286 |
+
if($pagenow != 'edit.php')
|
287 |
+
return;
|
288 |
+
|
289 |
+
$post_type = $query->get('post_type');
|
290 |
+
if($post_type != 'acfe-dt')
|
291 |
+
return;
|
292 |
+
|
293 |
+
$query->set('orderby', 'name');
|
294 |
+
$query->set('order', 'ASC');
|
295 |
+
|
296 |
+
}
|
297 |
+
|
298 |
+
/**
|
299 |
+
* Dynamic Taxonomy Admin: Posts Per Page
|
300 |
+
*/
|
301 |
+
add_filter('edit_posts_per_page', 'acfe_dt_admin_ppp', 10, 2);
|
302 |
+
function acfe_dt_admin_ppp($ppp, $post_type){
|
303 |
+
|
304 |
+
if($post_type != 'acfe-dt')
|
305 |
+
return $ppp;
|
306 |
+
|
307 |
+
global $pagenow;
|
308 |
+
if($pagenow != 'edit.php')
|
309 |
+
return $ppp;
|
310 |
+
|
311 |
+
return 999;
|
312 |
+
|
313 |
+
}
|
314 |
+
|
315 |
/**
|
316 |
* Filter Admin: List
|
317 |
*/
|
init.php
CHANGED
@@ -15,14 +15,41 @@ function acfe_is_acf_pro(){
|
|
15 |
/**
|
16 |
* ACFE: ACF Pro Check
|
17 |
*/
|
18 |
-
|
19 |
-
function
|
20 |
|
21 |
-
if(
|
22 |
-
return
|
23 |
|
24 |
-
|
25 |
|
26 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
|
28 |
}
|
15 |
/**
|
16 |
* ACFE: ACF Pro Check
|
17 |
*/
|
18 |
+
add_action('after_plugin_row_' . ACFE_BASENAME, 'acfe_plugin_row', 5, 3);
|
19 |
+
function acfe_plugin_row($plugin_file, $plugin_data, $status){
|
20 |
|
21 |
+
if(acfe_is_acf_pro())
|
22 |
+
return;
|
23 |
|
24 |
+
?>
|
25 |
|
26 |
+
<style>
|
27 |
+
.plugins tr[data-plugin='<?php echo ACFE_BASENAME; ?>'] th,
|
28 |
+
.plugins tr[data-plugin='<?php echo ACFE_BASENAME; ?>'] td{
|
29 |
+
box-shadow:none;
|
30 |
+
}
|
31 |
+
|
32 |
+
<?php if(isset($plugin_data['update']) && !empty($plugin_data['update'])){ ?>
|
33 |
+
|
34 |
+
.plugins tr.acfe-plugin-tr td{
|
35 |
+
box-shadow:none !important;
|
36 |
+
}
|
37 |
+
|
38 |
+
.plugins tr.acfe-plugin-tr .update-message{
|
39 |
+
margin-bottom:0;
|
40 |
+
}
|
41 |
+
|
42 |
+
<?php } ?>
|
43 |
+
</style>
|
44 |
+
|
45 |
+
<tr class="plugin-update-tr active acfe-plugin-tr">
|
46 |
+
<td colspan="3" class="plugin-update colspanchange">
|
47 |
+
<div class="update-message notice inline notice-error notice-alt">
|
48 |
+
<p><?php _e('ACF Extended requires Advanced Custom Fields PRO (minimum: 5.7.10).', 'acfe'); ?></p>
|
49 |
+
</div>
|
50 |
+
</td>
|
51 |
+
</tr>
|
52 |
+
|
53 |
+
<?php
|
54 |
|
55 |
}
|
readme.txt
CHANGED
@@ -1,25 +1,29 @@
|
|
1 |
-
=== Advanced Custom Fields: Extended ===
|
2 |
Contributors: hwk-fr
|
3 |
-
Donate link: https://
|
4 |
Tags: acf, custom fields, meta, admin, fields, form, repeater, content
|
5 |
Requires at least: 4.9
|
6 |
-
Tested up to: 5.
|
7 |
Requires PHP: 5.6
|
8 |
-
Stable tag: 0.6.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
12 |
-
All-in-one enhancement suite
|
13 |
|
14 |
== Description ==
|
15 |
|
16 |
-
|
|
|
|
|
17 |
|
18 |
**Requires at least ACF Pro 5.7.10**
|
19 |
|
20 |
-
*If you don't already own [ACF Pro](https://www.advancedcustomfields.com/pro/),
|
|
|
|
|
21 |
|
22 |
-
|
23 |
|
24 |
* **Auto Sync PHP**
|
25 |
Automatically synchronize field groups with local PHP files upon field group updates. This feature will create, include and update a local PHP file for each field group (just like the native Json sync feature).
|
@@ -58,7 +62,7 @@ Display field group on post types archive screen. Fields are saved in the option
|
|
58 |
* **New field group location: Taxonomy Archive**
|
59 |
Display field group on taxonomies archive screen. Fields are saved in the option: `tax_{taxonomy}_options`
|
60 |
|
61 |
-
|
62 |
|
63 |
* **Column: Category**
|
64 |
Display and filter field groups categories
|
@@ -81,11 +85,11 @@ Quick view of field groups keys
|
|
81 |
* **Status: Third party**
|
82 |
Display local field groups thats are loaded by ACF, but not available in the ACF field group administration. Example: a field group is registered locally in the `functions.php` file, but not in ACF
|
83 |
|
84 |
-
|
85 |
|
86 |
* **Bidirectional fields**
|
87 |
An advanced bidirectional setting (also called post-to-post) is available for the following fields: Relationship, Post object, User & Taxonomy terms.
|
88 |
-
Fields will work bidirectionally and automatically
|
89 |
[Usage example is available in the FAQ](#faq)
|
90 |
|
91 |
* **Advanced validation**
|
@@ -100,27 +104,29 @@ Add permission layer to fields. Choose which roles can view & edit fields in the
|
|
100 |
* **View raw data**
|
101 |
Display raw field data in a modal to check your configuration & settings
|
102 |
|
103 |
-
|
|
|
|
|
104 |
Display dynamic PHP content using `acf/render_field`
|
105 |
|
106 |
-
* **New
|
107 |
Display a submit button
|
108 |
|
109 |
-
* **New
|
110 |
Select any post type (format: checkbox, radio or select)
|
111 |
|
112 |
-
* **New
|
113 |
Select any taxonomy (format: checkbox, radio or select)
|
114 |
|
115 |
-
* **New
|
116 |
A slug text input (ie: `my-text-input`)
|
117 |
|
118 |
-
|
119 |
|
120 |
* **Settings page**
|
121 |
Display all ACF settings in one page.
|
122 |
|
123 |
-
|
124 |
|
125 |
Create and manage post types from your WordPress administration (Tools > Post Types). All WordPress post types arguments can be set and managed. But also:
|
126 |
|
@@ -129,7 +135,7 @@ Create and manage post types from your WordPress administration (Tools > Post Ty
|
|
129 |
* Set custom single template (ie: `my-single.php`) instead of the native `single-{post_type}.php`
|
130 |
* Set custom archive template (ie: `my-archive.php`) instead of the native `archive-{post_type}.php`
|
131 |
|
132 |
-
|
133 |
|
134 |
Create and manage taxonomies from your WordPress administration (Tools > Taxonomies). All WordPress taxonomies arguments can be set and managed. But also:
|
135 |
|
@@ -137,19 +143,30 @@ Create and manage taxonomies from your WordPress administration (Tools > Taxonom
|
|
137 |
* Manage Posts per page, order by and order for the taxonomy administration screen
|
138 |
* Set custom taxonomy template (ie: `my-taxonomy.php`) instead of the native `taxonomy-{taxonomy}.php`
|
139 |
|
140 |
-
|
|
|
|
|
141 |
|
142 |
-
|
143 |
|
144 |
-
|
145 |
|
146 |
-
|
147 |
|
148 |
-
|
149 |
|
150 |
-
|
|
|
151 |
|
152 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
|
154 |
== Installation ==
|
155 |
|
@@ -209,6 +226,15 @@ Usage example:
|
|
209 |
|
210 |
== Changelog ==
|
211 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
212 |
= 0.6.1 =
|
213 |
* Admin: Re-introduced 'Options' admin screen under Settings > Options. Code has been completely refactored using native WP List Table. New features: Searchbox, item per page preference (default: 100), sortable columns, bulk delete and ability to edit serialized values.
|
214 |
|
1 |
+
=== Advanced Custom Fields: Extended ===
|
2 |
Contributors: hwk-fr
|
3 |
+
Donate link: https://ko-fi.com/acfextended
|
4 |
Tags: acf, custom fields, meta, admin, fields, form, repeater, content
|
5 |
Requires at least: 4.9
|
6 |
+
Tested up to: 5.2
|
7 |
Requires PHP: 5.6
|
8 |
+
Stable tag: 0.6.3
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
12 |
+
All-in-one enhancement suite to enhance WordPress & Advanced Custom Fields.
|
13 |
|
14 |
== Description ==
|
15 |
|
16 |
+
🚀 All-in-one enhancement suite to enhance WordPress & Advanced Custom Fields. This plugin aims to provide a powerful administration toolset with a wide range of improvements & optimizations.
|
17 |
+
|
18 |
+
[ACF-Extended.com](https://www.acf-extended.com) (in development)
|
19 |
|
20 |
**Requires at least ACF Pro 5.7.10**
|
21 |
|
22 |
+
*If you don't already own [ACF Pro](https://www.advancedcustomfields.com/pro/), you should consider it. It's one of the most powerful WordPress plugin, with a life-time licence for unlimited websites.*
|
23 |
+
|
24 |
+
== 🏷️ Features ==
|
25 |
|
26 |
+
= ACF: Field Groups Settings =
|
27 |
|
28 |
* **Auto Sync PHP**
|
29 |
Automatically synchronize field groups with local PHP files upon field group updates. This feature will create, include and update a local PHP file for each field group (just like the native Json sync feature).
|
62 |
* **New field group location: Taxonomy Archive**
|
63 |
Display field group on taxonomies archive screen. Fields are saved in the option: `tax_{taxonomy}_options`
|
64 |
|
65 |
+
= ACF: Field Groups List =
|
66 |
|
67 |
* **Column: Category**
|
68 |
Display and filter field groups categories
|
85 |
* **Status: Third party**
|
86 |
Display local field groups thats are loaded by ACF, but not available in the ACF field group administration. Example: a field group is registered locally in the `functions.php` file, but not in ACF
|
87 |
|
88 |
+
= ACF: Fields Settings =
|
89 |
|
90 |
* **Bidirectional fields**
|
91 |
An advanced bidirectional setting (also called post-to-post) is available for the following fields: Relationship, Post object, User & Taxonomy terms.
|
92 |
+
Fields will work bidirectionally and automatically update each others. Works in groups & clones (prefixed field names must be turned off).
|
93 |
[Usage example is available in the FAQ](#faq)
|
94 |
|
95 |
* **Advanced validation**
|
104 |
* **View raw data**
|
105 |
Display raw field data in a modal to check your configuration & settings
|
106 |
|
107 |
+
= ACF: Fields =
|
108 |
+
|
109 |
+
* **New Field: Dynamic message**
|
110 |
Display dynamic PHP content using `acf/render_field`
|
111 |
|
112 |
+
* **New Field: Button**
|
113 |
Display a submit button
|
114 |
|
115 |
+
* **New Field: Post type selection**
|
116 |
Select any post type (format: checkbox, radio or select)
|
117 |
|
118 |
+
* **New Field: Taxonomy selection**
|
119 |
Select any taxonomy (format: checkbox, radio or select)
|
120 |
|
121 |
+
* **New Field: Slug**
|
122 |
A slug text input (ie: `my-text-input`)
|
123 |
|
124 |
+
= ACF: Settings =
|
125 |
|
126 |
* **Settings page**
|
127 |
Display all ACF settings in one page.
|
128 |
|
129 |
+
= WordPress: Dynamic Post Types =
|
130 |
|
131 |
Create and manage post types from your WordPress administration (Tools > Post Types). All WordPress post types arguments can be set and managed. But also:
|
132 |
|
135 |
* Set custom single template (ie: `my-single.php`) instead of the native `single-{post_type}.php`
|
136 |
* Set custom archive template (ie: `my-archive.php`) instead of the native `archive-{post_type}.php`
|
137 |
|
138 |
+
= WordPress: Dynamic Taxonomies =
|
139 |
|
140 |
Create and manage taxonomies from your WordPress administration (Tools > Taxonomies). All WordPress taxonomies arguments can be set and managed. But also:
|
141 |
|
143 |
* Manage Posts per page, order by and order for the taxonomy administration screen
|
144 |
* Set custom taxonomy template (ie: `my-taxonomy.php`) instead of the native `taxonomy-{taxonomy}.php`
|
145 |
|
146 |
+
= WordPress: Ajax Author Box =
|
147 |
+
|
148 |
+
The native WP Author Metabox has been replaced with a dynamic version allowing to manage thousands of users without slowing down the post administration.
|
149 |
|
150 |
+
= WordPress: Taxonomy List & Edit =
|
151 |
|
152 |
+
Taxonomies list & edit views have been enhanced for a more consistent administration experience, using CSS/JS only. Views are now similar to post type edition screens.
|
153 |
|
154 |
+
= WordPress: Options =
|
155 |
|
156 |
+
Manage WordPress options from Settings > Options.
|
157 |
|
158 |
+
* View, add, edit and delete options
|
159 |
+
* Working with strings and serialized values
|
160 |
|
161 |
+
== ❤️ Supporters ==
|
162 |
+
|
163 |
+
* Thanks to [Brandon A.](https://twitter.com/AsmussenBrandon) for his continuous support & tests
|
164 |
+
|
165 |
+
== 🛠️ Links ==
|
166 |
+
|
167 |
+
* Found a bug? [Submit a ticket](https://wordpress.org/support/plugin/acf-extended)
|
168 |
+
* Enjoying this plugin? [Submit a review](https://wordpress.org/support/plugin/acf-extended/reviews/#new-post)
|
169 |
+
* Want to keep me awake? [Buy me a coffee](https://ko-fi.com/acfextended)
|
170 |
|
171 |
== Installation ==
|
172 |
|
226 |
|
227 |
== Changelog ==
|
228 |
|
229 |
+
= 0.6.3 =
|
230 |
+
* Module: Dynamic Post Type & Taxonomy now deregister post types /taxonomies that have been deleted (or trashed) via the Tools > Post Types / Taxonomies
|
231 |
+
* Module: Dynamic Post Type & Taxonomy now register post types / taxonomies in ASC order
|
232 |
+
* Module: Dynamic Post Type - Fixed a bug where hierarchical post types had a query error in the admin archive
|
233 |
+
* General: Improved the ACF Pro dependency style in plugins list when ACF Pro isn't activated
|
234 |
+
* Plugin: Readme - Reworked structure
|
235 |
+
* Plugin: Readme - Added Supporters section
|
236 |
+
* Plugin: Readme - Trying to implement emojis ✌
|
237 |
+
|
238 |
= 0.6.1 =
|
239 |
* Admin: Re-introduced 'Options' admin screen under Settings > Options. Code has been completely refactored using native WP List Table. New features: Searchbox, item per page preference (default: 100), sortable columns, bulk delete and ability to edit serialized values.
|
240 |
|