Compare commits
4 Commits
hotfix/v0.
...
fix/v0.2.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
224fae5c2b | ||
|
|
3382cd3c96 | ||
|
|
4dc6436531 | ||
|
|
0519d6ec7d |
10
CHANGELOG.md
10
CHANGELOG.md
@@ -3,6 +3,11 @@
|
||||
All notable changes to Peptide Repo Core are documented here.
|
||||
Format: [Semantic Versioning](https://semver.org/).
|
||||
|
||||
## [0.2.2] — 2026-04-25
|
||||
|
||||
### Fixed
|
||||
- Remove `rest_namespace` from peptide CPT registration. Custom namespace prevented Gutenberg block editor from loading peptide posts for editing (404 on wp/v2 REST route). All 89 peptide entries are now editable in the block editor.
|
||||
|
||||
## [0.2.1] — 2026-04-22
|
||||
|
||||
### Fixed
|
||||
@@ -65,7 +70,4 @@ Format: [Semantic Versioning](https://semver.org/).
|
||||
- JSON-LD emission: schema.org `Drug` type on single peptide pages with `pr_core_jsonld_peptide` filter.
|
||||
- Public API filters: `pr_core_get_indexable_corpus`, `pr_core_disclaimer_for_surface`, `pr_core_evidence_strength_label`.
|
||||
- Public API actions: `pr_core_before/after_peptide_publish`, `pr_core_before/after_dosing_row_publish`, `pr_core_before/after_legal_cell_publish`, `pr_core_candidate_approved/rejected`.
|
||||
- `manage_peptide_content` capability granted to administrators and editors on activation.
|
||||
- Full teardown in `uninstall.php` (tables, posts, terms, options, capabilities).
|
||||
- Seed data fixture: 3 peptides (BPC-157, Semaglutide, TB-500), 10 dosing rows, 5 legal cells.
|
||||
- CI workflow: PHP lint (8.0/8.1/8.2), PHPCS (WordPress standard), 300-line file check.
|
||||
- `manage_peptide_content` capability granted to administrators and editors on activ
|
||||
@@ -2,9 +2,10 @@
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Registers the peptide custom post type and associated taxonomy.
|
||||
* Registers the peptide custom post type and associated taxonomies.
|
||||
*
|
||||
* What: Defines the peptide CPT with REST support, archive, and monograph meta fields.
|
||||
* Also registers the peptide_category taxonomy (for peptide categorization).
|
||||
* Who calls it: PR_Core::init() on plugins_loaded.
|
||||
* Dependencies: None.
|
||||
*
|
||||
@@ -183,7 +184,8 @@ class PR_Core_Peptide_CPT {
|
||||
'show_in_nav_menus' => true,
|
||||
'show_in_rest' => true,
|
||||
'rest_base' => 'peptides',
|
||||
'rest_namespace' => 'pr-core/v1',
|
||||
// 'rest_namespace' omitted — custom namespaces break Gutenberg (it
|
||||
// fetches wp/v2 hardcoded). WordPress defaults to wp/v2. (#4)
|
||||
'menu_position' => 25,
|
||||
'menu_icon' => 'dashicons-database',
|
||||
'capability_type' => 'post',
|
||||
@@ -201,35 +203,36 @@ class PR_Core_Peptide_CPT {
|
||||
* Register the `peptide_category` taxonomy.
|
||||
*
|
||||
* Guarded with `taxonomy_exists()` for the same reason CPT registration
|
||||
* is guarded. The 8 existing terms + term_relationships stay intact —
|
||||
* is guarded. The 8 existing category terms + term_relationships stay intact —
|
||||
* they key on taxonomy name `peptide_category` in wp_term_taxonomy,
|
||||
* which is exactly what we register here.
|
||||
*
|
||||
* v0.2.0: `pr_peptide_family` taxonomy removed — never populated, never
|
||||
* surfaced in UI.
|
||||
*
|
||||
* v0.3.0: `peptide_topic` taxonomy moved to PR_Core_Topic_Taxonomy class.
|
||||
*
|
||||
* Side effects: registers taxonomy with WordPress.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function register_taxonomies(): void {
|
||||
if ( taxonomy_exists( self::TAX_CATEGORY ) ) {
|
||||
return;
|
||||
// Register peptide_category taxonomy.
|
||||
if ( ! taxonomy_exists( self::TAX_CATEGORY ) ) {
|
||||
register_taxonomy( self::TAX_CATEGORY, self::POST_TYPE, [
|
||||
'labels' => [
|
||||
'name' => __( 'Peptide Categories', 'peptide-repo-core' ),
|
||||
'singular_name' => __( 'Peptide Category', 'peptide-repo-core' ),
|
||||
],
|
||||
'public' => true,
|
||||
'publicly_queryable' => true,
|
||||
'show_in_rest' => true,
|
||||
'show_ui' => true,
|
||||
'show_admin_column' => true,
|
||||
'hierarchical' => true,
|
||||
'rewrite' => [ 'slug' => 'peptide-category', 'with_front' => false ],
|
||||
] );
|
||||
}
|
||||
|
||||
register_taxonomy( self::TAX_CATEGORY, self::POST_TYPE, [
|
||||
'labels' => [
|
||||
'name' => __( 'Peptide Categories', 'peptide-repo-core' ),
|
||||
'singular_name' => __( 'Peptide Category', 'peptide-repo-core' ),
|
||||
],
|
||||
'public' => true,
|
||||
'publicly_queryable' => true,
|
||||
'show_in_rest' => true,
|
||||
'show_ui' => true,
|
||||
'show_admin_column' => true,
|
||||
'hierarchical' => true,
|
||||
'rewrite' => [ 'slug' => 'peptide-category', 'with_front' => false ],
|
||||
] );
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* Plugin Name: Peptide Repo Core
|
||||
* Plugin URI: https://peptiderepo.com
|
||||
* Description: Canonical peptide schema — shared data layer for the peptiderepo.com ecosystem. Provides the peptide CPT, dosing rows, legal status cells, AI candidate queue, disclaimer component, and JSON-LD output.
|
||||
* Version: 0.2.1
|
||||
* Version: 0.2.2
|
||||
* Author: peptiderepo
|
||||
* Author URI: https://peptiderepo.com
|
||||
* License: GPL-2.0-or-later
|
||||
@@ -22,7 +22,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
||||
|
||||
/* ── Constants ────────────────────────────────────────────────────────── */
|
||||
|
||||
define( 'PR_CORE_VERSION', '0.2.1' );
|
||||
define( 'PR_CORE_VERSION', '0.2.2' );
|
||||
define( 'PR_CORE_PLUGIN_FILE', __FILE__ );
|
||||
define( 'PR_CORE_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
||||
define( 'PR_CORE_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
|
||||
|
||||
Reference in New Issue
Block a user