{"id":306951,"date":"2026-05-11T15:33:32","date_gmt":"2026-05-11T15:33:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/npc-manual-generator-for-advanced-custom-fields\/"},"modified":"2026-05-11T17:01:11","modified_gmt":"2026-05-11T17:01:11","slug":"npc-manual-generator-for-advanced-custom-fields","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/npc-manual-generator-for-advanced-custom-fields\/","author":23491267,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"NPC Manual Generator for Advanced Custom Fields","header_author":"npc","header_description":"Reads Advanced Custom Fields (ACF) field structures and automatically generates client-ready update manuals in Markdown and PDF formats.","assets_banners_color":"dac8bb","last_updated":"2026-05-11 17:01:11","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/n-pc.jp\/","header_plugin_uri":"","header_author_uri":"https:\/\/n-pc.jp\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":51,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"npc01","date":"2026-05-11 17:01:11"}},"upgrade_notice":{"1.0.0":"<p>First public release on WordPress.org. Stable and production-ready.<\/p>","0.3.0":"<p>Adds PDF output (mPDF + bundled IPAex Gothic) and bulk download format selection. Production-deliverable quality.<\/p>","0.2.0":"<p>Adds reading of field groups stored in the database and Markdown download. Production-ready.<\/p>","0.1.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3528991,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3528991,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3528991,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3528991,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3528991,"resolution":"1","location":"assets","locale":"","width":1280,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3528991,"resolution":"2","location":"assets","locale":"","width":1280,"height":800},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3528991,"resolution":"3","location":"assets","locale":"","width":1280,"height":800},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3528991,"resolution":"4","location":"assets","locale":"","width":1280,"height":800},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3528991,"resolution":"5","location":"assets","locale":"","width":1280,"height":800},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3528991,"resolution":"6","location":"assets","locale":"","width":905,"height":1280},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3528991,"resolution":"7","location":"assets","locale":"","width":1704,"height":1550},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3528991,"resolution":"8","location":"assets","locale":"","width":1280,"height":800}},"screenshots":{"1":"The \"ACF Manual\" menu added to the WordPress admin","2":"Field group list (database and JSON sources side by side)","3":"Both database-sourced and JSON-sourced field groups detected","4":"Markdown preview rendered in the admin","5":"Bulk download with format radio (MD \/ PDF \/ Both) and multi-select","6":"Sample PDF page (A4 portrait, header \/ footer, location rules)","7":"Repeater \/ Flexible Content \/ Group nested rendering in the PDF (vertical guide lines)","8":"Plugin name and version displayed in the Plugins list"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2211,2010,6941,2827,1764],"plugin_category":[50,59],"plugin_contributors":[262582],"plugin_business_model":[],"class_list":["post-306951","plugin","type-plugin","status-publish","hentry","plugin_tags-acf","plugin_tags-custom-fields","plugin_tags-documentation","plugin_tags-manual","plugin_tags-pdf","plugin_category-media","plugin_category-utilities-and-tools","plugin_contributors-npc01","plugin_committers-npc01"],"banners":{"banner":"https:\/\/ps.w.org\/npc-manual-generator-for-advanced-custom-fields\/assets\/banner-772x250.png?rev=3528991","banner_2x":"https:\/\/ps.w.org\/npc-manual-generator-for-advanced-custom-fields\/assets\/banner-1544x500.png?rev=3528991","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/npc-manual-generator-for-advanced-custom-fields\/assets\/icon-128x128.png?rev=3528991","icon_2x":"https:\/\/ps.w.org\/npc-manual-generator-for-advanced-custom-fields\/assets\/icon-256x256.png?rev=3528991","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/npc-manual-generator-for-advanced-custom-fields\/assets\/screenshot-1.png?rev=3528991","caption":"The \"ACF Manual\" menu added to the WordPress admin"},{"src":"https:\/\/ps.w.org\/npc-manual-generator-for-advanced-custom-fields\/assets\/screenshot-2.png?rev=3528991","caption":"Field group list (database and JSON sources side by side)"},{"src":"https:\/\/ps.w.org\/npc-manual-generator-for-advanced-custom-fields\/assets\/screenshot-3.png?rev=3528991","caption":"Both database-sourced and JSON-sourced field groups detected"},{"src":"https:\/\/ps.w.org\/npc-manual-generator-for-advanced-custom-fields\/assets\/screenshot-4.png?rev=3528991","caption":"Markdown preview rendered in the admin"},{"src":"https:\/\/ps.w.org\/npc-manual-generator-for-advanced-custom-fields\/assets\/screenshot-5.png?rev=3528991","caption":"Bulk download with format radio (MD \/ PDF \/ Both) and multi-select"},{"src":"https:\/\/ps.w.org\/npc-manual-generator-for-advanced-custom-fields\/assets\/screenshot-6.png?rev=3528991","caption":"Sample PDF page (A4 portrait, header \/ footer, location rules)"},{"src":"https:\/\/ps.w.org\/npc-manual-generator-for-advanced-custom-fields\/assets\/screenshot-7.png?rev=3528991","caption":"Repeater \/ Flexible Content \/ Group nested rendering in the PDF (vertical guide lines)"},{"src":"https:\/\/ps.w.org\/npc-manual-generator-for-advanced-custom-fields\/assets\/screenshot-8.png?rev=3528991","caption":"Plugin name and version displayed in the Plugins list"}],"raw_content":"<!--section=description-->\n<p>When you hand off a WordPress site to a client, they often ask \"where do I edit what?\". NPC Manual Generator for Advanced Custom Fields parses the field structures defined by Advanced Custom Fields (ACF) and produces an update manual that operations staff can actually read - in Markdown and PDF.<\/p>\n\n<p>Designed for real-world handoff use, the plugin renders Repeater \/ Flexible Content \/ Group nesting, translates ACF location rules into readable text, and bundles a Japanese-capable font for PDF output, so the result is something you can ship as a deliverable.<\/p>\n\n<h4>Main features<\/h4>\n\n<ul>\n<li>Read ACF local JSON (<code>acf-json\/group_xxx.json<\/code>) and field groups stored in the database<\/li>\n<li>Indented rendering for nested fields (Repeater \/ Flexible Content \/ Group)<\/li>\n<li>Formatted output of field type, required flag, instructions, choices, and more<\/li>\n<li>Location rule humanization (post type, taxonomy, page templates; resolves page\/post titles when reading from the database)<\/li>\n<li>Live preview in the admin screen<\/li>\n<li>Markdown download (single file and Zip bundle)<\/li>\n<li>PDF download (single file - A4 portrait, IPAex Gothic bundled, header \/ footer \/ page numbers)<\/li>\n<li>Bulk Zip download with format selection (MD \/ PDF \/ Both)<\/li>\n<li>Paired filename rename when bundling so that the MD and PDF for the same group share the same suffix<\/li>\n<\/ul>\n\n<h4>Translation<\/h4>\n\n<p>All UI strings are wrapped with <code>__()<\/code> \/ <code>_e()<\/code> and the text domain <code>npc-manual-generator-for-advanced-custom-fields<\/code>. A Japanese translation is bundled (<code>languages\/npc-manual-generator-for-advanced-custom-fields-ja.po<\/code>). Additional languages can be contributed through translate.wordpress.org.<\/p>\n\n<h4>Roadmap<\/h4>\n\n<ul>\n<li>Template feature (rebrand the manual with your studio's logo and colors)<\/li>\n<li>Inline display in the post editor sidebar<\/li>\n<li>Sample value capture (pull one real post and show \"currently entered as ...\")<\/li>\n<li>Diff manuals (highlight changes since the previous output)<\/li>\n<li>Automatic screenshot insertion (capture the admin screen with a headless browser and embed in the PDF)<\/li>\n<\/ul>\n\n<h4>Links<\/h4>\n\n<ul>\n<li>Official site: https:\/\/n-pc.jp\/<\/li>\n<li>Developer blog: https:\/\/n-pc.jp\/blog\/<\/li>\n<\/ul>\n\n<h4>Author<\/h4>\n\n<p>npc - Freelance WordPress developer working with ACF since 2016. This plugin grew from in-house tools used to ship real client projects.<\/p>\n\n<h3>Third-party Licenses<\/h3>\n\n<p>This plugin bundles the following third-party software.<\/p>\n\n<ul>\n<li><strong>mPDF<\/strong> (<code>mpdf\/mpdf<\/code> 8.x): GPL-2.0-only. See <code>vendor\/mpdf\/mpdf\/LICENSE.txt<\/code>.<\/li>\n<li><strong>IPAex Gothic Font<\/strong> (<code>fonts\/ipaexg.ttf<\/code>): IPA Font License Agreement v1.0. See <code>fonts\/IPA_Font_License_Agreement_v1.0.txt<\/code>. Official: https:\/\/moji.or.jp\/ipafont\/license\/<\/li>\n<\/ul>\n\n<p>The mPDF dependencies are also bundled (all under compatible licenses):<\/p>\n\n<ul>\n<li><code>setasign\/fpdi<\/code> - MIT<\/li>\n<li><code>psr\/log<\/code> - MIT<\/li>\n<li><code>psr\/http-message<\/code> - MIT<\/li>\n<li><code>paragonie\/random_compat<\/code> - MIT<\/li>\n<li><code>myclabs\/deep-copy<\/code> - MIT<\/li>\n<li><code>mpdf\/psr-log-aware-trait<\/code> - GPL-2.0-only<\/li>\n<li><code>mpdf\/psr-http-message-shim<\/code> - GPL-2.0-only<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Standard installation (recommended)<\/h4>\n\n<ol>\n<li>From the WordPress admin, go to Plugins -&gt; Add New -&gt; Upload Plugin and upload the plugin Zip file.<\/li>\n<li>Activate \"NPC ACF Manual Generator\" from the Plugins list.<\/li>\n<li>Open \"ACF Manual\" in the left admin menu to start using it.<\/li>\n<\/ol>\n\n<h4>Manual upload (FTP)<\/h4>\n\n<ol>\n<li>Unzip the package and upload the entire <code>npc-acf-manual-generator\/<\/code> folder (including <code>vendor\/<\/code> and <code>fonts\/<\/code>) to <code>wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin from Plugins.<\/li>\n<li>Open \"ACF Manual\" in the left admin menu.<\/li>\n<\/ol>\n\n<h4>For developers (when cloning from Git)<\/h4>\n\n<p>The <code>vendor\/<\/code> directory is excluded from version control. Install the dependencies with Composer:<\/p>\n\n<pre><code>composer install --no-dev --optimize-autoloader\n<\/code><\/pre>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>PHP: 7.4 or higher<\/li>\n<li>PHP extensions: <code>mbstring<\/code> (required), <code>gd<\/code> (required for PDF output), <code>zip<\/code> (required for bulk Zip download)<\/li>\n<li>WordPress: 6.0 or higher<\/li>\n<li>ACF: 6.0 or higher recommended (used to read field groups from the database; sample JSON output works without ACF)<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20acf%20required%3F\"><h3>Is ACF required?<\/h3><\/dt>\n<dd><p>No. Markdown \/ PDF generation from sample JSON works without ACF. ACF 6.0 or higher is recommended for reading actual field groups from the database.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20acf%20free%3F\"><h3>Does it work with ACF Free?<\/h3><\/dt>\n<dd><p>The basic field types work with ACF Free. Repeater \/ Flexible Content require ACF Pro.<\/p><\/dd>\n<dt id=\"pdf%20generation%20says%20it%20cannot%20run\"><h3>PDF generation says it cannot run<\/h3><\/dt>\n<dd><p>One of the following is the cause. The exact reason is shown in the admin notice.<\/p>\n\n<ul>\n<li><code>vendor\/autoload.php<\/code> is missing - run <code>composer install --no-dev<\/code><\/li>\n<li><code>fonts\/ipaexg.ttf<\/code> is missing - place IPAex Gothic (IPA Font License v1.0) under <code>fonts\/<\/code><\/li>\n<li>PHP extension <code>gd<\/code> or <code>mbstring<\/code> is disabled - enable it on the server<\/li>\n<li><code>wp-content\/uploads\/<\/code> is not writable - required to create a temporary directory<\/li>\n<\/ul><\/dd>\n<dt id=\"can%20i%20customize%20the%20pdf%20design%20with%20my%20own%20brand%3F\"><h3>Can I customize the PDF design with my own brand?<\/h3><\/dt>\n<dd><p>Yes. The header comment of <code>includes\/class-pdf-generator.php<\/code> documents six <code>apply_filters()<\/code> extension points (template path, header HTML, footer HTML, mPDF config, default font, final HTML). Add filters from <code>functions.php<\/code> or your own plugin to swap logos, colors, and layout.<\/p><\/dd>\n<dt id=\"are%20there%20performance%20concerns%20on%20large%20sites%3F\"><h3>Are there performance concerns on large sites?<\/h3><\/dt>\n<dd><p>The Markdown path is designed to handle 100 field groups within a few seconds. PDF generation for very large manuals (100+ pages) may require raising <code>WP_MEMORY_LIMIT<\/code> and the PHP execution time limit.<\/p><\/dd>\n<dt id=\"how%20extensive%20is%20the%20location%20rule%20humanization%3F\"><h3>How extensive is the location rule humanization?<\/h3><\/dt>\n<dd><ul>\n<li>Post type \/ taxonomy \/ user role slugs - converted to readable labels<\/li>\n<li>Page \/ post conditions - the actual page title is resolved<\/li>\n<li>If the referenced post is deleted - falls back to <code>[deleted: ID:xxxx]<\/code><\/li>\n<li>Title resolution runs only for database-sourced groups (JSON-sourced groups show the raw ID)<\/li>\n<\/ul><\/dd>\n<dt id=\"where%20is%20the%20sample%20json%3F\"><h3>Where is the sample JSON?<\/h3><\/dt>\n<dd><p>sample-data\/group_sample.json is bundled. After activating the plugin, you can try Markdown \/ PDF generation from this sample even without ACF installed.<\/p><\/dd>\n<dt id=\"i%20want%20to%20contribute%20a%20translation\"><h3>I want to contribute a translation<\/h3><\/dt>\n<dd><p>Contributions through the WordPress.org translation platform (translate.wordpress.org) are welcome.<\/p><\/dd>\n<dt id=\"i%20want%20to%20use%20the%20filter%20hooks%20for%20white-label%20customization\"><h3>I want to use the filter hooks for white-label customization<\/h3><\/dt>\n<dd><p>See the six <code>apply_filters()<\/code> calls described in the header comment of <code>includes\/class-pdf-generator.php<\/code>:<\/p>\n\n<ul>\n<li><code>npc_acf_manual_pdf_template_path<\/code> - swap the template file path<\/li>\n<li><code>npc_acf_manual_pdf_header_html<\/code> - swap the header HTML<\/li>\n<li><code>npc_acf_manual_pdf_footer_html<\/code> - swap the footer HTML<\/li>\n<li><code>npc_acf_manual_pdf_mpdf_config<\/code> - swap the mPDF constructor arguments<\/li>\n<li><code>npc_acf_manual_pdf_default_font<\/code> - swap the default font<\/li>\n<li><code>npc_acf_manual_pdf_html<\/code> - swap the final HTML (last resort)<\/li>\n<\/ul>\n\n<p>Add <code>add_filter()<\/code> calls from <code>functions.php<\/code> or your own plugin to apply your branding.<\/p><\/dd>\n<dt id=\"how%20do%20i%20test%20locally%3F\"><h3>How do I test locally?<\/h3><\/dt>\n<dd><p>sample-data\/group_sample.json works as a stand-in even when ACF is not installed. A pre-generated <code>sample-data\/group_sample.pdf<\/code> is also bundled for reference.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release on WordPress.org<\/li>\n<li>Plugin assets (banner and icon) added for the plugin directory page<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Phase 3: PDF output for production deliverables<\/li>\n<li>Bundled mPDF 8.3 via Composer (vendor\/ included in the distribution)<\/li>\n<li>Bundled IPAex Gothic (with the IPA Font License v1.0 text)<\/li>\n<li>Single-file PDF download (A4 portrait, 20mm margins, header \/ footer, page numbers)<\/li>\n<li>Hierarchy rendered with H2 \/ H3 + left-border guide lines<\/li>\n<li>Bulk Zip download format radio (MD \/ PDF \/ Both)<\/li>\n<li>Paired filename rename so MD and PDF for the same group share suffixes<\/li>\n<li>Per-row download buttons reorganized as MD \/ PDF icon buttons<\/li>\n<li>Admin notice when mPDF or the bundled font is missing<\/li>\n<li>Six <code>apply_filters()<\/code> extension points in PDF_Generator for white-label customization<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Phase 2: production-ready release<\/li>\n<li>Direct read of field groups stored in the ACF database<\/li>\n<li>Markdown download (single file and Zip bundle)<\/li>\n<li>Location rule resolution (post type \/ page title \/ taxonomy \/ user role)<\/li>\n<li>In-request static cache to reduce database load during bulk processing<\/li>\n<li>Same-name groups deduplicated with sequential rename in Zip<\/li>\n<li>Fallback display when ZipArchive is not available<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Phase 1: PoC release<\/li>\n<li>ACF JSON read, Markdown generation, admin preview<\/li>\n<li>Repeater \/ Flexible Content \/ Group nesting<\/li>\n<li>All 16 field types covered<\/li>\n<\/ul>","raw_excerpt":"Reads Advanced Custom Fields (ACF) field structures and automatically generates client-ready update manuals in Markdown and PDF formats.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/306951","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=306951"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/npc01"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=306951"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=306951"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=306951"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=306951"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=306951"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=306951"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}