Description
When a field uses a Fieldmanager_Datasource_Term
with 'only_save_to_taxonomy' => true
, the field's default_value
is ignored.
For example, in this field intended to replace the default category selection meta box, the first option in the <select>
element will always be selected when creating a post:
<?php
new \Fieldmanager_Select( [
'name' => 'category',
'datasource' => new \Fieldmanager_Datasource_Term ( [
'taxonomy' => 'category',
'only_save_to_taxonomy' => true,
] ),
'default_value' => get_option( 'default_category' ),
] );
I think this happens because of logic in Fieldmanager_Datasource_Term
.
A field's default_value
is used only when the current value is null
:
wordpress-fieldmanager/php/class-fieldmanager-field.php
Lines 700 to 702 in 10080e8
However, when only_save_to_taxonomy
is used, Fieldmanager_Datasource_Term:: preload_alter_values()
will ensure the current value is an array:
wordpress-fieldmanager/php/datasource/class-fieldmanager-datasource-term.php
Lines 141 to 168 in 10080e8