{"id":377911,"date":"2026-10-01T14:47:48","date_gmt":"2026-10-01T14:47:48","guid":{"rendered":"https:\/\/de.wordpress.org\/plugins\/persistent-archive-system\/"},"modified":"2026-10-01T14:47:39","modified_gmt":"2026-10-01T14:47:39","slug":"cosmonorma-real-persistent-archive","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/cosmonorma-real-persistent-archive\/","author":23059363,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.29","stable_tag":"0.1.29","tested":"7.1.2","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Cosmonorma Real Persistent Archive","header_author":"Cosmonorma Project","header_description":"Assigns permanent, human-readable archive identifiers to WordPress content and media.","assets_banners_color":"d4f1f9","last_updated":"2026-10-01 14:47:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":59,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.29":{"tag":"0.1.29","author":"jkrewer","date":"2026-10-01 14:47:39","revision":3723354}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3723338,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3723338,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3723338,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3723338,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.29"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[1445,4917,12813,96456,233],"plugin_category":[],"plugin_contributors":[283900],"plugin_business_model":[],"class_list":["post-377911","plugin","type-plugin","status-publish","hentry","plugin_tags-archive","plugin_tags-content-management","plugin_tags-document-management","plugin_tags-editorial-workflow","plugin_tags-media-library","plugin_contributors-jkrewer","plugin_committers-jkrewer"],"banners":{"banner":"https:\/\/ps.w.org\/cosmonorma-real-persistent-archive\/assets\/banner-772x250.png?rev=3723338","banner_2x":"https:\/\/ps.w.org\/cosmonorma-real-persistent-archive\/assets\/banner-1544x500.png?rev=3723338","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cosmonorma-real-persistent-archive\/assets\/icon-128x128.png?rev=3723338","icon_2x":"https:\/\/ps.w.org\/cosmonorma-real-persistent-archive\/assets\/icon-256x256.png?rev=3723338","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Cosmonorma Real Persistent Archive (Cosmonorma RPA) adds a durable identification layer to WordPress content and media.<\/p>\n\n<p>Instead of relying only on internal numeric WordPress IDs, URLs, slugs, or filenames, Cosmonorma RPA can assign permanent human-readable archive IDs such as:<\/p>\n\n<pre><code>POST-001-260923\nPAGE-001-260923\nIMG-001-260923\nDOC-001-260923\n<\/code><\/pre>\n\n<p>Core principles:<\/p>\n\n<ul>\n<li>Archive IDs are assigned once and remain unchanged.<\/li>\n<li>Posts, pages, media attachments, and public custom post types can use separate configurable series.<\/li>\n<li>Media can be separated into image, document, audio, video, and other profiles.<\/li>\n<li>Existing content is not numbered retroactively unless an editor explicitly assigns an ID.<\/li>\n<li>Frontend display is optional and independent from the archive function.<\/li>\n<li>Visible media labels can optionally be prefixed with the corresponding image, document, audio, video, or other-media Archive ID.<\/li>\n<li>Each individual object can inherit, force, or suppress frontend display.<\/li>\n<li>The backend Archive Registry supports search, pagination, type filtering, and deterministic ordering.<\/li>\n<li>Registry records remain preserved even if the original WordPress object is later deleted.<\/li>\n<li>Cosmonorma RPA data is preserved by default across plugin uninstall\/reinstall.<\/li>\n<li>An explicit destructive uninstall option can remove all Cosmonorma RPA registry data, counters, settings, and Cosmonorma RPA post metadata.<\/li>\n<\/ul>\n\n<p>Archive ID patterns support these tokens:<\/p>\n\n<pre><code>{prefix}\n{number}\n{date}\n<\/code><\/pre>\n\n<p>The number token is mandatory.<\/p>\n\n<p>Frontend positions include:<\/p>\n\n<ul>\n<li>Before content<\/li>\n<li>Below post meta<\/li>\n<li>In post meta line<\/li>\n<li>After content<\/li>\n<li>Before media label (image, document, audio, video, and other media)<\/li>\n<\/ul>\n\n<p>Cosmonorma RPA follows the WordPress interface language. Translations are delivered through the standard WordPress.org language-pack system; if no translation is available, WordPress uses the English source strings.<\/p>\n\n<h3>Shortcodes<\/h3>\n\n<pre><code>[cosmonorma_rpa_archive_id]\n<\/code><\/pre>\n\n<p>Optional attributes:<\/p>\n\n<pre><code>[cosmonorma_rpa_archive_id id=\"123\"]\n[cosmonorma_rpa_archive_id label=\"Archive ID:\"]&lt;h3&gt;Developer API&lt;\/h3&gt;\n<\/code><\/pre>\n\n<p>Template function:<\/p>\n\n<pre><code>cosmonorma_rpa_get_archive_id( $post_id )\n<\/code><\/pre>\n\n<p>Output helper:<\/p>\n\n<pre><code>cosmonorma_rpa_the_archive_id( $post_id )\n<\/code><\/pre>\n\n<p>Filters:<\/p>\n\n<pre><code>cosmonorma_rpa_generated_archive_id\ncosmonorma_rpa_archive_id_html\n<\/code><\/pre>\n\n<p>Action:<\/p>\n\n<pre><code>cosmonorma_rpa_archive_id_assigned&lt;h3&gt;Privacy&lt;\/h3&gt;\n<\/code><\/pre>\n\n<p>Cosmonorma RPA does not contact external services and does not include tracking. Archive data is stored in the local WordPress database.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin ZIP through Plugins &gt; Add New &gt; Upload Plugin.<\/li>\n<li>Activate Cosmonorma Real Persistent Archive.<\/li>\n<li>Open Archive IDs &gt; Settings.<\/li>\n<li>Enable the object profiles you want Cosmonorma RPA to manage.<\/li>\n<li>Configure prefixes, patterns, numbering width, date format\/source, automatic assignment, and optional frontend display.<\/li>\n<li>Save settings before testing assignment.<\/li>\n<\/ol>\n\n<p>No existing object receives an Archive ID merely by activating the plugin.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20cosmonorma%20rpa%20change%20the%20native%20wordpress%20post%20id%3F\"><h3>Does Cosmonorma RPA change the native WordPress post ID?<\/h3><\/dt>\n<dd><p>No. Cosmonorma RPA adds a separate persistent archive identifier and leaves native WordPress identifiers unchanged.<\/p><\/dd>\n<dt id=\"can%20an%20archive%20id%20be%20edited%20later%3F\"><h3>Can an Archive ID be edited later?<\/h3><\/dt>\n<dd><p>No. Archive IDs are intentionally immutable. Configuration changes affect only future assignments.<\/p><\/dd>\n<dt id=\"can%20archive%20ids%20remain%20internal%3F\"><h3>Can Archive IDs remain internal?<\/h3><\/dt>\n<dd><p>Yes. Frontend display can be disabled per profile and overridden per object.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20an%20object%20is%20deleted%3F\"><h3>What happens if an object is deleted?<\/h3><\/dt>\n<dd><p>Its Cosmonorma RPA registry record remains preserved and is marked as deleted. Cosmonorma RPA does not reuse the Archive ID.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20cosmonorma%20rpa%20is%20uninstalled%3F\"><h3>What happens when Cosmonorma RPA is uninstalled?<\/h3><\/dt>\n<dd><p>Cosmonorma RPA data is preserved by default. If the administrator explicitly enables destructive uninstall before deleting the plugin, Cosmonorma RPA removes its registry, sequence counters, settings, and Cosmonorma RPA post metadata.<\/p><\/dd>\n<dt id=\"does%20deactivating%20cosmonorma%20rpa%20remove%20data%3F\"><h3>Does deactivating Cosmonorma RPA remove data?<\/h3><\/dt>\n<dd><p>No. Deactivation does not remove Cosmonorma RPA registry data, settings, Archive ID metadata, or sequence counters.<\/p><\/dd>\n<dt id=\"can%20i%20use%20cosmonorma%20rpa%20with%20a%20custom%20post%20type%3F\"><h3>Can I use Cosmonorma RPA with a custom post type?<\/h3><\/dt>\n<dd><p>Yes. Public post types with an admin UI are discovered automatically and can be configured separately.<\/p><\/dd>\n<dt id=\"can%20cosmonorma%20rpa%20display%20a%20media%20archive%20id%20where%20the%20media%20is%20used%3F\"><h3>Can Cosmonorma RPA display a media Archive ID where the media is used?<\/h3><\/dt>\n<dd><p>Yes, when frontend display is enabled for the corresponding media profile and the concrete media use already has a visible label. Cosmonorma RPA can prefix existing image, audio, or video captions as well as visible direct-file labels for documents and other media. Cosmonorma RPA does not create missing captions, labels, or file descriptions. In block editors such as Gutenberg, the caption must be enabled or entered for that media block. Classic WordPress captions and compatible builder output are also supported when a recognizable visible media label is rendered.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.29<\/h4>\n\n<ul>\n<li>Renamed the plugin to Cosmonorma Real Persistent Archive for WordPress.org review.<\/li>\n<li>Changed the plugin slug and text domain to <code>cosmonorma-real-persistent-archive<\/code>.<\/li>\n<li>Replaced the former short technical prefix with the unique <code>cosmonorma_rpa_<\/code> \/ <code>COSMONORMA_RPA_<\/code> namespace across PHP APIs, hooks, options, metadata, database tables, shortcodes, AJAX actions, handles, and UI identifiers.<\/li>\n<li>Removed bundled translation files and the plugin-specific language selector; the interface now follows the native WordPress locale and standard WordPress.org language packs.<\/li>\n<li>No intended change to archive assignment, numbering, registry, frontend presentation, or persistence semantics.<\/li>\n<\/ul>\n\n<h4>0.1.28<\/h4>\n\n<ul>\n<li>Added optional media-label frontend output for image, document, audio, video, and other-media Archive IDs.<\/li>\n<li>Cosmonorma RPA prefixes only an already visible caption or media\/file label; it does not create one.<\/li>\n<li>Added support for block-editor figure captions, classic WordPress captions, and visible direct-attachment links.<\/li>\n<li>Media-label output inherits the existing typography and uses the configured separator and optional color.<\/li>\n<li>Existing attachments are not numbered retroactively merely because their caption or metadata is edited.<\/li>\n<\/ul>\n\n<h4>0.1.27<\/h4>\n\n<ul>\n<li>First stable release.<\/li>\n<li>Promoted from the fully validated 0.1.26 Release Candidate 1.<\/li>\n<li>Update test passed.<\/li>\n<li>Clean-install test passed after destructive uninstall.<\/li>\n<li>Full Plugin Check passed with General, Plugin Repository, Security, Performance, and Accessibility enabled.<\/li>\n<li>No functional Cosmonorma RPA behavior changed from RC1.<\/li>\n<\/ul>\n\n<h4>0.1.26<\/h4>\n\n<ul>\n<li>Release Candidate 1.<\/li>\n<li>Based on the fully validated 0.1.25-alpha codebase.<\/li>\n<li>Plugin Check passed with all categories enabled and both errors and warnings selected.<\/li>\n<li>No functional Cosmonorma RPA behavior changed for this release-candidate build.<\/li>\n<\/ul>\n\n<h4>0.1.25-alpha<\/h4>\n\n<ul>\n<li>Corrected Tested up to from 7.1.2 to the WordPress.org-required major.minor form 7.1.<\/li>\n<li>Documented the remaining intentional uncached Cosmonorma RPA custom-table writes for Plugin Check.<\/li>\n<li>No functional Cosmonorma RPA behavior changed.<\/li>\n<\/ul>\n\n<h4>0.1.24-alpha<\/h4>\n\n<ul>\n<li>Addressed the Plugin Check repository report generated on 24 September 2026.<\/li>\n<li>Added translator comments for placeholder-based strings.<\/li>\n<li>Hardened admin input handling and documented read-only GET requests.<\/li>\n<li>Documented prepared custom-table SQL and intentional direct database access.<\/li>\n<li>Removed the discouraged load_plugin_textdomain() call while retaining Cosmonorma RPA language behavior.<\/li>\n<li>Cleaned the destructive uninstall path and moved development-only Markdown documents out of the distributable plugin ZIP.<\/li>\n<li>Added Tested up to: 7.1.2 based on the validated test installation.<\/li>\n<\/ul>\n\n<h4>0.1.23-alpha<\/h4>\n\n<ul>\n<li>Applied a pre-Release-Candidate code-quality pass.<\/li>\n<li>Hardened input normalization and modernized runtime SQL identifier handling.<\/li>\n<li>Added a generated Archive ID length guard matching the registry schema.<\/li>\n<li>Added a Release-Candidate audit document.<\/li>\n<li>No intended change to normal archive assignment, presentation, or persistence semantics.<\/li>\n<\/ul>\n\n<h4>0.1.22-alpha<\/h4>\n\n<ul>\n<li>Consolidated documentation and manual test evidence through the validated 0.1.21-alpha behavior\/UI baseline.<\/li>\n<li>Updated English\/German README files, controlled test plan, alpha test report, architecture notes, and roadmap.<\/li>\n<li>Added explicit Release Candidate gate criteria.<\/li>\n<li>No assignment, numbering, registry, frontend, editor, localization, search, filter, UI, or persistence behavior changed.<\/li>\n<\/ul>\n\n<h4>0.1.21-alpha<\/h4>\n\n<ul>\n<li>Fixed horizontal overflow in the Cosmonorma RPA editor meta box on narrow WordPress\/Gutenberg sidebars.<\/li>\n<li>Constrained controls and Archive ID display to the available sidebar width.<\/li>\n<li>No archive assignment, numbering, registry, frontend rendering, search, filter, localization, or persistence logic changed.<\/li>\n<\/ul>\n\n<h4>0.1.20-alpha<\/h4>\n\n<ul>\n<li>Redesigned the object editor Archive ID meta box.<\/li>\n<li>Added a compact permanent status badge and clearer Archive ID hierarchy.<\/li>\n<li>Refined per-object frontend visibility controls and profile-default context.<\/li>\n<li>Updated AJAX assignment rendering to match the new UI immediately.<\/li>\n<li>No archive assignment, numbering, registry, frontend rendering, search, filter, or persistence logic changed.<\/li>\n<\/ul>\n\n<h4>0.1.19-alpha<\/h4>\n\n<ul>\n<li>Completed the German localization pass for Settings field labels and helper text.<\/li>\n<li>Clarified several bilingual helper texts.<\/li>\n<li>Technical pattern tokens and configuration values remain intentionally language-neutral.<\/li>\n<li>No assignment, numbering, registry, frontend, search, filter, or persistence logic changed.<\/li>\n<\/ul>\n\n<h4>0.1.18-alpha<\/h4>\n\n<ul>\n<li>Added a Last modified column to the Archive Registry.<\/li>\n<li>The column uses the current WordPress object's modification timestamp; deleted objects show an em dash.<\/li>\n<li>Rebalanced registry column widths.<\/li>\n<li>No registry query, assignment, numbering, search, filter, ordering, or persistence logic changed.<\/li>\n<\/ul>\n\n<h4>0.1.17-alpha<\/h4>\n\n<ul>\n<li>Refined the Archive Registry filter\/search toolbar and table presentation.<\/li>\n<li>Added restrained status badges and stronger Archive ID presentation.<\/li>\n<li>Improved registry behavior on narrow admin windows.<\/li>\n<li>No registry query, search, filter, ordering, assignment, numbering, or persistence logic changed.<\/li>\n<\/ul>\n\n<h4>0.1.16-alpha<\/h4>\n\n<ul>\n<li>Fixed Settings UI styling in German and Follow WordPress language modes.<\/li>\n<li>Settings CSS loading is now independent of translated admin menu hook names.<\/li>\n<li>No archive assignment, numbering, registry, frontend, or persistence logic changed.<\/li>\n<\/ul>\n\n<h4>0.1.15-alpha<\/h4>\n\n<ul>\n<li>Increased spacing and reduced control widths in expanded profile cards.<\/li>\n<li>Improved visual separation of settings groups.<\/li>\n<li>Fixed the Save button to follow the Cosmonorma RPA-specific language selector.<\/li>\n<li>No archive assignment, numbering, registry, or persistence logic changed.<\/li>\n<\/ul>\n\n<h4>0.1.14-alpha<\/h4>\n\n<ul>\n<li>Redesigned the Settings page as a responsive profile-card interface.<\/li>\n<li>Removed the wide horizontal-scrolling settings table.<\/li>\n<li>Added a sticky Save Changes bar.<\/li>\n<li>Improved settings usability on split and narrow displays.<\/li>\n<li>No archive assignment, numbering, registry, or persistence logic changed.<\/li>\n<\/ul>\n\n<h4>0.1.13-alpha<\/h4>\n\n<ul>\n<li>Consolidated documentation and current alpha test plan.<\/li>\n<li>Added a manual alpha test report covering assignment, registry, frontend, language, deletion, and uninstall behavior.<\/li>\n<li>Clarified destructive uninstall UI: registry, counters, settings, and Cosmonorma RPA post metadata are removed.<\/li>\n<li>No Archive ID generation or persistence logic changed in this release.<\/li>\n<\/ul>\n\n<h4>0.1.12-alpha<\/h4>\n\n<ul>\n<li>Added Archive Registry type filters: All \/ Post \/ Page \/ Media \/ Document.<\/li>\n<li>Added deterministic All ordering: Post, Page, Media, Document, then custom\/other profiles.<\/li>\n<li>Preserved the selected type filter during search and pagination.<\/li>\n<\/ul>\n\n<h4>0.1.11-alpha<\/h4>\n\n<ul>\n<li>Moved Type to the first Registry column.<\/li>\n<li>Grouped entries by profile\/type and sequence.<\/li>\n<\/ul>\n\n<h4>0.1.10-alpha<\/h4>\n\n<ul>\n<li>Clarified object-level frontend visibility labels.<\/li>\n<\/ul>\n\n<h4>0.1.9-alpha<\/h4>\n\n<ul>\n<li>Refined Below post meta placement to avoid theme-generated whitespace.<\/li>\n<\/ul>\n\n<h4>0.1.8-alpha<\/h4>\n\n<ul>\n<li>Added explicit WordPress block-theme metadata-row detection.<\/li>\n<\/ul>\n\n<h4>0.1.6-alpha<\/h4>\n\n<ul>\n<li>Added In post meta line and configurable separators.<\/li>\n<\/ul>\n\n<h4>0.1.5-alpha<\/h4>\n\n<ul>\n<li>Localized core Post\/Page labels independently from the WordPress interface language.<\/li>\n<\/ul>\n\n<h4>0.1.4-alpha<\/h4>\n\n<ul>\n<li>Stabilized Cosmonorma RPA-specific language switching.<\/li>\n<\/ul>\n\n<h4>0.1.1-alpha<\/h4>\n\n<ul>\n<li>Added AJAX manual assignment inside editors.<\/li>\n<li>Added Below post meta, configurable frontend color, and clearer Registry status separation.<\/li>\n<\/ul>\n\n<h4>0.1.0-alpha<\/h4>\n\n<ul>\n<li>Initial architecture.<\/li>\n<li>Persistent registry and separate series counters.<\/li>\n<li>Posts, pages, custom post types, and media profiles.<\/li>\n<li>Manual and automatic assignment.<\/li>\n<li>Optional frontend display with per-object override.<\/li>\n<li>Searchable backend registry.<\/li>\n<li>Persistent registry record after object deletion.<\/li>\n<li>English source strings with translations supplied through standard WordPress.org language packs.<\/li>\n<li>Archive data preserved by default on uninstall, with an explicit destructive-cleanup option.<\/li>\n<\/ul>","raw_excerpt":"Assign permanent, human-readable archive IDs to WordPress posts, pages, media, and custom post types.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/377911","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=377911"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jkrewer"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=377911"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=377911"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=377911"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=377911"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=377911"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=377911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}