=== BranchDesk ===
Contributors: claudchan
Tags: admin, content, hierarchy, pages, custom post types
Requires at least: 6.8
Tested up to: 7.0
Requires PHP: 8.1
Stable tag: 0.1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A modern visual hierarchical content explorer and management system for WordPress admin.

== Description ==

BranchDesk adds a fast, REST-first admin explorer for posts, pages, public custom post types, and WooCommerce products when available.

It is designed as a content organization layer, not only a page tree. The tree can show multiple enabled post types in a single admin screen while keeping WordPress native hierarchy safe.

Current features include:

* Visual content tree for enabled public post types.
* Root grouping by post type, such as Pages, Posts, Movies, Products, and other custom post types.
* Expandable and collapsible group labels.
* Nested page and content organization display.
* Drag and drop nesting and sibling reordering.
* Safe hierarchy handling: native WordPress hierarchy is used only when appropriate.
* Custom organization relationships for same-type non-hierarchical post type nesting.
* Search across enabled content.
* Taxonomy and category term badges.
* Taxonomy term filtering.
* Status filtering for active, published, draft, pending, scheduled, private, and trashed content.
* Create menu for enabled post types.
* Edit, rename, view, publish, switch to draft, move to Trash, and restore actions where the current user has permission.
* Status badges and child count badges.
* Front page and posts page indicators for Pages configured in WordPress Reading settings.
* Relationship source badges for native hierarchy and Content Tree organization.
* Optional shortcode output for frontend navigation.
* Optional native WordPress menu sync for published Pages.
* REST endpoints for listing, search, CRUD, move, and bulk operations.
* Settings, tools, and developer debug screens.
* Translation-ready plugin strings.
* Developer architecture for future node providers and modules.

Content Tree stores flexible organization relationships in its own table where needed. For example, a Page under a Page can use the native WordPress `post_parent` field, while same-type non-hierarchical content can use a Content Tree relationship so WordPress core hierarchy is not confused.

== Features ==

= Content Explorer =

* Unified tree interface for Posts, Pages, and enabled public custom post types.
* Post type grouping at the root level.
* Automatic post type labels and icons where available.
* Expand and collapse support.
* Nested children are loaded and displayed in the tree.
* Child counts for loaded parent nodes.
* Taxonomy and category badges are displayed as metadata, not as hierarchy parents.
* Toolbar filtering by available taxonomy terms.
* Toolbar filtering by content status, including Trash.
* Front page and posts page icons for Pages selected in Settings > Reading.

= Organization =

* Drag content onto another same-type content item to organize it.
* Drag content before or after a same-type sibling to reorder it.
* Native WordPress hierarchy is preserved for safe same-type hierarchical relationships.
* Same-type non-hierarchical organization uses plugin-owned relationship storage.
* Root items with a custom Content Tree parent are hidden from root to avoid duplicates.
* Drag and drop does not add or remove taxonomy terms.

= Content Actions =

* Create enabled post types as drafts.
* Rename content inline through the admin tree.
* Publish drafts and switch published content back to draft where the user has permission.
* Move content to Trash with confirmation.
* Restore trashed content from the Trash status filter.

= Admin Tools =

* Main Content Tree screen.
* Settings screen for enabled post types and behavior controls.
* Tools screen with developer debug mode.

= Frontend Navigation =

* Shortcode: `[branchdesk_content_tree_menu]`.
* Optional native menu sync creates or updates a normal WordPress menu under Appearance > Menus.
* Native menu sync is Pages-only in this version.
* Generated menus can be assigned to theme menu locations using WordPress menu settings.
* Manual edits to the generated menu may be overwritten when syncing.

= Developer Architecture =

* Object-oriented PHP architecture.
* Lightweight service container.
* REST-first node operations.
* Node provider contracts.
* Module registry contracts.
* Async queue foundation for future background tasks.
* Extension contracts for future modules.

== Installation ==

1. Upload the `branchdesk` folder to `/wp-content/plugins/`.
2. Activate "BranchDesk" in WordPress admin.
3. Open Content Tree from the admin menu.
4. Visit Content Tree > Settings to choose enabled post types.

== Frequently Asked Questions ==

= Does this replace the WordPress Pages screen? =

No. Content Tree provides a modern organization and navigation interface. WordPress core screens remain available.

= Can I drag a Post under a Page? =

No. Different content types cannot be nested under each other in this version. This keeps WordPress core hierarchy and Content Tree organization predictable.

= Are categories or custom taxonomies used as tree parents? =

No. Taxonomy terms are shown as badges and filters in this version. Dragging content does not assign or remove categories, tags, or custom taxonomy terms.

= When does the plugin use WordPress native `post_parent`? =

Native hierarchy is used only for safe same-type hierarchical relationships, such as Page under Page.

= Can custom post types appear in the tree? =

Yes. Public post types with admin UI support can be enabled from Content Tree settings. For example, a custom `movie` post type can appear under a Movies group.

= Does the plugin require WooCommerce? =

No. If WooCommerce is installed and products are enabled as a public post type, they can be shown in the tree.

== Developer Notes ==

The plugin keeps its PHP internals separate from the public plugin name so extensions can rely on stable APIs.

The WordPress.org plugin directory requires this `readme.txt` file. A separate `README.md` may be added later for GitHub or developer documentation, but it should not replace this file.

== Screenshots ==

1. Content Tree admin explorer with grouped post types.
2. Nested content view with page children.
3. Settings screen for enabling post types.

== Changelog ==

= 0.1.0 =
* Initial architecture and MVP scaffold.
* Added grouped root display for enabled post types.
* Added safe native-vs-custom hierarchy handling.
* Added custom relation storage for same-type non-hierarchical organization.
* Added create menu for enabled post types.
* Added child count badges and always-visible node actions.
* Added status filtering, publish/draft switching, Trash, and Restore actions.
* Added front page and posts page indicators.
* Added frontend navigation shortcode.
* Added optional Pages-only native WordPress menu sync.
* Added sibling reordering with before and after drop targets.
* Added taxonomy/category badges and term filtering.
