Custom post types (CPT)
-
Hello Rookie,
This feature is already available. You can access the UI via Tools > Dynamic Post Types. Same for Taxonomies.
I would suggest you to read the whole plugin’s description on the main page so you can check everything’s inside ACF Extended: https://www.ads-software.com/plugins/acf-extended/
Regards.
@hwk-fr I have thanks but I did not see that this was under the UI via Tools. Thanks.
For my personal preferences I would like to see some improvements like the functionalities and maybe inspire by https://www.ads-software.com/plugins/custom-post-type-ui/
Easier functions to import the code from CPT UI. To make it easier to migrate cpt plugin.
php sync path folder does this matter if using local json?
We have no theme active, themeless. Thinking about fallback but maybe fine anyway? Or should both be used?Looks like this: https://tppr.me/WMO4P
Is this php sync an issue if not loaded? Since theme is inactive I would need to change path just like local json?
Template
ACF Extended: Which template file to load for the archive query. More informations on Template hierarchySame with template path can left empty without any issues since we do not use template it theme.
Possible to disable functions that isn’t used:
Block types, Forms etc to make it cleaner if users isn’t using it.Couldn’t find where in ACF extended code to define false.
Another feature to consider:
https://github.com/1n3JgKl9pQ6cUMrW/acf-cleanerWould be very useful to see this in your plugin and supported and up to date.
My sftp didn’t sync, I found
acf-extended.php
to define false thanks.Hello,
- For my personal preferences I would like to see some improvements like the functionalities and maybe inspire by CPTUI. Easier functions to import the code from CPT UI. To make it easier to migrate cpt plugin.
The Dynamic Post Types already have functionalities that aren’t available in CPT UI:
– Admin List: Posts Per Page
– Admin List: Orderby
– Admin List: Order
– Admin List: Archive option page
– Front Archive: Posts Per Page
– Front Archive: Orderby
– Front Archive: Order
– Front Archive: Custom template
– Front Single: Custom templateThe export/import available right now are using Json files. However, the next patch will let you manually export Dynamic Post Types to PHP code, so you can copy/paste post types configurations directly in your
functions.php
file.About migration from CPT UI: This maybe added in the future, but it’s not planned for the moment. I prefer to focus on core mechanics than migrations tools right now.
- Field Groups: php sync path folder does this matter if using local json? We have no theme active, themeless. Thinking about fallback but maybe fine anyway? Or should both be used? Is this php sync an issue if not loaded? Since theme is inactive I would need to change path just like local json?
Sync method has an impact on performance when ACF is doing its work (get field configurations, values etc…). Here is a quick summary of sync methods:
– No Sync (alias: DB sync)
Field groups & fields are saved and loaded from MySQL DB. It has great impact on performance as ACF will constantly use DB to retrieve fields configurations informations.– Json Sync
Fields groups & fields are saved in DB and Json file. They are loaded from Json. This method gives a significant boost as fields configurations are loaded using the server hard drive (which is very fast, even more fast if the hard drive is an SSD)– PHP Sync
Fields groups & fields are saved in DB and PHP file. They are loaded directly from PHP memory. This is the best performance method. Speed is slightly better than Json, but Json is still a very valid method for production websites.If you’re comfortable with ACF settings (https://www.advancedcustomfields.com/resources/acf-settings/) you can change the ACF Extended PHP path settings to set a custom path (outside of theme for example). Here are the two settings you should change:
add_action('acf/init', 'my_acfe_php_settings'); function my_acfe_php_settings(){ // ACF Extended: PHP Save Sync Path acf_update_setting('acfe/php_save', '/home/website.com/public_html/wp-content/acfe-php'); // ACF Extended: PHP Load Sync Path (must be an array) acf_update_setting('acfe/php_load', array('/home/website.com/public_html/wp-content/acfe-php')); }
- Same with template path can left empty without any issues since we do not use template it theme.
The Dynamic Post Type Custom Template path is optional. If you leave it blank, then the native WordPress behavior will be applied.
- Possible to disable functions that isn’t used: Block types, Forms etc to make it cleaner if users isn’t using it.
Yes, you can disable specific modules using ACF settings, as written in ACF Extended FAQ: How to disable specific ACF Extended modules? (Dynamic Post Types, Taxonomies, Options Pages etc…)
add_action('acf/init', 'my_acfe_modules'); function my_acfe_modules(){ // Disable Ajax Author box acf_update_setting('acfe/modules/author', false); // Disable ACF > Block Types acf_update_setting('acfe/modules/dynamic_block_types', false); // Disable Forms acf_update_setting('acfe/modules/dynamic_forms', false); // Disable Tools > Post Types acf_update_setting('acfe/modules/dynamic_post_types', false); // Disable Tools > Taxonomies acf_update_setting('acfe/modules/dynamic_taxonomies', false); // Disable ACF > Options Pages acf_update_setting('acfe/modules/dynamic_options_pages', false); // Disable Settings > Options acf_update_setting('acfe/modules/options', false); // Disable Taxonomies enhancements acf_update_setting('acfe/modules/taxonomies', false); }
- Another feature to consider: ACF Cleaner. Would be very useful to see this in your plugin and supported and up to date.
Yes, I have plans to add similar feature in the future. There will be a complete UI to perform maintenance on every posts/ACF fields etc… This will include a “cleaner” function ??
Regards.
Hi! Very good answer many thanks to begin with!
The Dynamic Post Types already have functionalities that aren’t available in CPT UI:
– Admin List: Posts Per Page
– Admin List: Orderby
– Admin List: Order
– Admin List: Archive option page
– Front Archive: Posts Per Page
– Front Archive: Orderby
– Front Archive: Order
– Front Archive: Custom template
– Front Single: Custom templateJust hade some personal preferences of features, like provide with all capabilities in a drop down instead of free text etc.
The export/import available right now are using Json files. However, the next patch will let you manually export Dynamic Post Types to PHP code, so you can copy/paste post types configurations directly in your functions.php file.
Ok, no need when the plugin do this for me but maybe useful for other users.
About migration from CPT UI: This maybe added in the future, but it’s not planned for the moment. I prefer to focus on core mechanics than migrations tools right now.
Understandable, have to do this manually when I migrate CPTs.
Sync method has an impact on performance when ACF is doing its work (get field configurations, values etc…). Here is a quick summary of sync methods:
– No Sync (alias: DB sync)
Field groups & fields are saved and loaded from MySQL DB. It has great impact on performance as ACF will constantly use DB to retrieve fields configurations informations.– Json Sync
Fields groups & fields are saved in DB and Json file. They are loaded from Json. This method gives a significant boost as fields configurations are loaded using the server hard drive (which is very fast, even more fast if the hard drive is an SSD)– PHP Sync
Fields groups & fields are saved in DB and PHP file. They are loaded directly from PHP memory. This is the best performance method. Speed is slightly better than Json, but Json is still a very valid method for production websites.This was very interesting, did not know about php sync method. Is it new, haven’t read about it on ACFs knowledge-base.
So php sync is faster than json very interesting, so it utilise opcache? have you experienced a notable frontend or backend performance improvements from json to php sync? in general do you speak about wp admin or frontend performance boost or both?
Have a few pre defined rows in acf since I want to make it easier to insert data instead of adding 100 rows in repeater I have added all rows so later each page just have to insert into the predefined rows. But the pages in wp admin loads a bit slower due to this. Just that my special case has a lot of rows in one part and then all other blocks. So it feels a bit slow loading a page in wp admin.
Hoped ACF could (but maybe you could) find a good solution to late load even text fields, or lazy load them. Or add option to accordions to lazy laod fields in it to optimize it.
Have SSD on AWS, always implement json directly so haven’t benchmarked myself between no sync DB and json.
I have redis to cache db queries, which helps a lot when I compare local environment with the server on AWS.
The Dynamic Post Type Custom Template path is optional. If you leave it blank, then the native WordPress behavior will be applied.
Thanks
Yes, you can disable specific modules using ACF settings, as written in ACF Extended FAQ: How to disable specific ACF Extended modules? (Dynamic Post Types, Taxonomies, Options Pages etc…)
Thanks found them. Though it was a risk to modify those since you might override them on a plugin update. But since this is the instruction from your end I assume this wont happened.
Yes, I have plans to add similar feature in the future. There will be a complete UI to perform maintenance on every posts/ACF fields etc… This will include a “cleaner” function ??
Sounds great! ?? Right now I also have issues with a lot of fields which make wp admin on posts and pages load slow. Since so many fields, but to me it’s not many rows but I feel a difference from enable/disable this block of fields to load.
Maybe there is a way to optimize this too as mentioned earlier. Mainly feeling it in wp admin. But since you′re a acf guru ?? I’ll ask if many acf fields also could affect frontend performance when connecting the dynamic data?
Of course it’s more php and db queries. But have php 7.3, opcache, redis, Varnish, and then cloudflare in the front.
But try to not rely on cache it should perform and load without so it’s not completely dependent on cache to load ??
If you’re comfortable with ACF settings (https://www.advancedcustomfields.com/resources/acf-settings/) you can change the ACF Extended PHP path settings to set a custom path (outside of theme for example). Here are the two settings you should change:
add_action('acf/init', 'my_acfe_php_settings'); function my_acfe_php_settings(){ // ACF Extended: PHP Save Sync Path acf_update_setting('acfe/php_save', '/home/website.com/public_html/wp-content/acfe-php'); // ACF Extended: PHP Load Sync Path (must be an array) acf_update_setting('acfe/php_load', array('/home/website.com/public_html/wp-content/acfe-php')); }
So I can just add the acfe-php file in a custom folder and then define above to load and save correctly?
1. Where should this be defined? in a php snippet/functions.php? You say change, you mean change in an existing file or change your example of path?
2. Does it have to start with full path from /home/website.com/?3. What would be defined in acfe-php? just an empty php file?
I see the defined in acf-extended.php:
// Define settings $this->settings = array( 'acfe/php' => true, 'acfe/php_save' => ACFE_THEME_PATH . '/acfe-php', 'acfe/php_load' => array(ACFE_THEME_PATH . '/acfe-php'), //what is this php_found? 'acfe/php_found' => false,
Many thanks, will surely give you guys a 5 star once this is nailed.
Using this helper plugin to easier change acf local json: https://github.com/wplit/ACF-Local-JSON/
maybe it could bu adjusted to support the php as well and work with your plugin?
- The topic ‘Custom post types (CPT)’ is closed to new replies.