| @@ -10,12 +10,14 @@ | ||
| 10 | 10 | |
| 11 | 11 | /** |
| 12 | 12 | * Translates between the ability input, an indexable, and the post SEO data value object. |
| 13 | 13 | * |
| 14 | - * This is the single source of truth for the field contract shared by the read | |
| 15 | - * (collector) and write (updater) abilities. The write path applies the input | |
| 16 | - * onto an indexable; persistence to post meta is delegated to | |
| 17 | - * Indexable_To_Postmeta_Helper so the encodings live in one place. | |
| 14 | + * The read path (collector) maps every readable field onto the output array. The | |
| 15 | + * write path (updater) applies whatever validated input it receives onto an | |
| 16 | + * indexable; which fields are exposed for writing is decided by the ability's | |
| 17 | + * input schema, so the writable set may be narrower than the fields known here. | |
| 18 | + * Persistence to post meta is delegated to Indexable_To_Postmeta_Helper so the | |
| 19 | + * encodings live in one place. | |
| 18 | 20 | */ |
| 19 | 21 | class Post_SEO_Field_Map { |
| 20 | 22 | |
| 21 | 23 | /** |
| @@ -42,9 +44,8 @@ | ||
| 42 | 44 | */ |
| 43 | 45 | private const STRING_FIELDS = [ |
| 44 | 46 | 'seo_title' => 'title', |
| 45 | 47 | 'meta_description' => 'description', |
| 46 | - 'focus_keyphrase' => 'primary_focus_keyword', | |
| 47 | 48 | 'canonical' => 'canonical', |
| 48 | 49 | 'open_graph_title' => 'open_graph_title', |
| 49 | 50 | 'open_graph_description' => 'open_graph_description', |
| 50 | 51 | 'twitter_title' => 'twitter_title', |