The domain has been 'comiceasel' since 2012 while the wordpress.org slug is
'comic-easel'. Language packs from translate.wordpress.org are keyed to the
slug, so they could never load; no working translation ever shipped against
the old domain. Renames the domain in every gettext call, in
load_plugin_textdomain(), in both Text Domain headers, and on the lang/
template files, which already carried comic-easel domain markers internally.
Option keys, admin page slugs, nonce actions and style handles that share the
comiceasel prefix are deliberately left alone; only the $domain argument moved.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Widget form() methods printed get_field_id()/get_field_name() straight into
id and name attributes, and the labels used _e(). Wrap the field helpers in
esc_attr(), switch the labels to esc_html_e(), and swap strip_tags() for
wp_strip_all_tags() on the stored titles. Adds the matching test stubs.
Assembled markup ($before_widget, filtered titles, $output) is left alone;
escaping it would change what existing sites render.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
None of the plugin's PHP files checked that they were loaded through
WordPress, so requesting one directly executed it with none of core loaded.
The result is a fatal error on the first undefined function, which depending
on the server's display_errors setting discloses the filesystem path and
details of the PHP configuration.
Add the standard guard to every file. Files opening with PHP get it as their
first statement, after the plugin header comment in the main file, which
WordPress parses and which must stay put. The admin page templates that open
with markup get it as a leading one-line block, with no whitespace before it
that would break header output.
Also required by the WordPress.org plugin guidelines.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1. (Front-end) Fixed Chapters drop-down list so it indents children showing hierarchy. Was showing as a flat list, making it impossible to see which chapters were children or parents. The "render_as_list" option was already doing this correctly.
2. (Back-end) Added radio button options to order list by:
* "menu_order" (current method, and default)
* "tax_name"
* "ID"
The "tax_name" sorts ASC and then alphabetically by chapter name (this was the only option that displayed chapters in my intended hierarchical order of Volume->Story->Chapter).
The "ID" option theoretically should sort oldest to newest, since earlier chapter IDs will be lower than ones created later, assuming you didn't create the older chapters after newer ones.
* archive dropdown now shows select <name> of the chosen name from the config
* do not display transcripts on the archive and search pages
* the column for the all comics now uses the name chosen for the taxonomy
make it so the chapter dropdown doesn't show empty chapters it just doesn't work
check for 404 pages for the thumbnail casthover and comblogpost widgets and do not execute if it's a 404 page
replaced some home_url with admin_url for admin location links in the admin_meta
restored the protect/unprotect but renamed them ceo_protect ceo_unprotect, wp_reset_query was having 'issues'
added injection of the comic-easel version number as a meta tag for the <head> section
fixed some injection code where it was returning at the wrong time for the post-info
started working on adding chapter= references to the cast-page (not working yet, don't use)