Skip to main content

1.17.1 - Content Corral Refactor & Sitemap Importer Overhaul

· 3 min read
Sarah Lewis
Senior Full Stack Engineer @ Yoko Co
Konstantin Brazhnik
Senior Full Stack Engineer @ Yoko Co

Version 1.17.1 is a comprehensive refactor of Content Corral. The settings page and sitemap importer no longer depend on ACF, the CSV parser has been extracted into a dedicated class with fuzzy header matching, and several new features make the importer more robust and the settings more flexible.

ADDS

  • [CONTENT CORRAL] Native settings page under Settings > Content Corral — replaces ACF options pages. Works without ACF Pro active.
  • [CONTENT CORRAL] Per-taxonomy enable/disable toggles in settings — disable taxonomies that aren't needed for a given project.
  • [CONTENT CORRAL] Author selection dropdown on the sitemap importer — choose which user imported pages are attributed to. Uses Select2 for searchable selection.
  • [CONTENT CORRAL] Smart content source parsing — the "Content Source" CSV column is intelligently parsed to separate URLs from freeform notes. URLs are stored as clickable links in a new Content Source meta box on the page editor.
  • [CONTENT CORRAL] New CsvParser class with fuzzy header detection, hierarchy column matching, metadata column mapping, and section marker filtering. Handles the wide variation in Content Strategy spreadsheet formats.
  • [CONTENT CORRAL] Activation documentation — Content Corral must be bootstrapped by the client theme. This is now documented with a code snippet.

CHANGES

  • [CONTENT CORRAL] Settings page and Sitemap Importer consolidated into a single admin page (Settings > Content Corral). The separate Tools > Sitemap Importer page has been removed.
  • [CONTENT CORRAL] ACF Content source URLs repeater field removed. Content source data is now stored as a structured array in post meta with a native meta box for display.
  • [CONTENT CORRAL] ACF "Content details" textarea fields (Content type, Internal notes, Yoko notes) now display side-by-side at 33% width with 3 rows instead of stacked vertically at full width.
  • [CONTENT CORRAL] File upload security hardened: is_uploaded_file(), finfo_file() MIME validation, 5 MB size limit, wp_check_filetype() extension check.
  • [CONTENT CORRAL] All capability checks upgraded from edit_posts to manage_options — importing creates pages site-wide, so it should be admin-only.
  • [CONTENT CORRAL] Content Corral user role is now created once and checked with get_role() instead of being recreated on every init request.

FIXES

  • [CONTENT CORRAL] Fixed deprecated get_page_by_title() call (deprecated since WP 6.2). Replaced with get_pages() approach.
  • [CONTENT CORRAL] Fixed N+1 query in page creation — existing pages per parent are now queried once and indexed by title.
  • [CONTENT CORRAL] Fixed wp_insert_post() return value not checked for errors.
  • [CONTENT CORRAL] Fixed CSV data stored without sanitization — all meta values now pass through sanitize_text_field() or sanitize_textarea_field().
  • [CONTENT CORRAL] Fixed apply_filters() for metadata map called ~450 times during header detection — now cached after first call.
  • [CONTENT CORRAL] Fixed set_default_terms() using posts_per_page => -1 — now batched with fields => ids.
  • [CONTENT CORRAL] Fixed hardcoded post_author => 1 — now uses the selected author or current user.
  • [CONTENT CORRAL] Fixed strtotime() return value not checked for false.
  • [CONTENT CORRAL] Added i18n to all user-facing strings with yoko-core text domain.
  • [PHONE NUMBER BLOCK] Fixes bug with Phone number block in editor that caused conflicts between the label and button text
  • [BUG] Fixes a CPTSync log PHP warning error related to missing log_subdir_folder property