{"id":265169,"date":"2026-01-18T15:37:28","date_gmt":"2026-01-18T15:37:28","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/easy-photo-publisher\/"},"modified":"2026-01-22T14:41:32","modified_gmt":"2026-01-22T14:41:32","slug":"easy-photo-publisher","status":"publish","type":"plugin","link":"https:\/\/es.wordpress.org\/plugins\/easy-photo-publisher\/","author":23409799,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.3","stable_tag":"1.0.3","tested":"6.9.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Easy Photo Publisher","header_author":"Detlef Beyer","header_description":"Complements my Adobe Lightroom Classic *Easy WordPress Publisher* add-on module. Send images from Lightroom to your WordPress site.","assets_banners_color":"","last_updated":"2026-01-22 14:41:32","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/medienkonzepte.de","rating":0,"author_block_rating":0,"active_installs":10,"downloads":217,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"easywppublisher","date":"2026-01-22 14:41:32"}},"upgrade_notice":{"1.0.3.":"<p>Added support for AVIF format.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3441980,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3441980,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1-de.jpg":{"filename":"screenshot-1-de.jpg","revision":3441980,"resolution":"1","location":"assets","locale":"de"},"screenshot-1.png":{"filename":"screenshot-1.png","revision":3441980,"resolution":"1","location":"assets","locale":""},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3441980,"resolution":"2","location":"assets","locale":""},"screenshot-3-de.jpg":{"filename":"screenshot-3-de.jpg","revision":3441980,"resolution":"3","location":"assets","locale":"de"},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3441980,"resolution":"3","location":"assets","locale":""},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3441980,"resolution":"4","location":"assets","locale":""},"screenshot-5-de.png":{"filename":"screenshot-5-de.png","revision":3441980,"resolution":"5","location":"assets","locale":"de"},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3441980,"resolution":"5","location":"assets","locale":""}},"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[210,163,4098,84,259],"plugin_category":[50],"plugin_contributors":[254206],"plugin_business_model":[],"class_list":["post-265169","plugin","type-plugin","status-publish","hentry","plugin_tags-gallery","plugin_tags-images","plugin_tags-lightroom","plugin_tags-media","plugin_tags-upload","plugin_category-media","plugin_contributors-easywppublisher","plugin_committers-easywppublisher"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/easy-photo-publisher\/assets\/icon-128x128.png?rev=3441980","icon_2x":"https:\/\/ps.w.org\/easy-photo-publisher\/assets\/icon-256x256.png?rev=3441980","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/easy-photo-publisher\/assets\/screenshot-1.png?rev=3441980","caption":""},{"src":"https:\/\/ps.w.org\/easy-photo-publisher\/assets\/screenshot-2.jpg?rev=3441980","caption":""},{"src":"https:\/\/ps.w.org\/easy-photo-publisher\/assets\/screenshot-3.png?rev=3441980","caption":""},{"src":"https:\/\/ps.w.org\/easy-photo-publisher\/assets\/screenshot-4.jpg?rev=3441980","caption":""},{"src":"https:\/\/ps.w.org\/easy-photo-publisher\/assets\/screenshot-5.png?rev=3441980","caption":""}],"raw_content":"<!--section=description-->\n<p>Easy Photo Publisher complements the Adobe Lightroom Classic add-on <strong>Easy WordPress Publisher<\/strong>. \nTogether they form a full publishing pipeline: send images directly from Lightroom to your WordPress site, \nupdate or replace them later, and (optionally) create blog posts using those images.<\/p>\n\n<p><strong>Highlights<\/strong>\n- Direct publish from Lightroom Classic via the companion LrC module\n- Create \/ update \/ delete media via a simple REST API\n- Optional post creation with visibility control and Featured Image\n- Gallery Shortcode: <code>[wpdet_gallery]<\/code> with taxonomy filters, sizing and a11y-friendly captions\n- Accessible lightbox (keyboard\/ARIA aware), toggled per shortcode\n- Media taxonomies: enable Categories and Tags on attachments\n- Theme template overrides (HTML-only)\n- i18n-ready (<code>easy-wp-publisher<\/code>)<\/p>\n\n<h3>Quick Start<\/h3>\n\n<ol>\n<li>In Lightroom Classic, publish an image using the \"Easy WordPress Publisher\" service.<\/li>\n<li>The image appears in your WordPress Media Library.<\/li>\n<li>On any page or post, insert the gallery shortcode:<\/li>\n<\/ol>\n\n<p>[wpdet_gallery category=\"Portugal\" limit=\"-1\" order=\"DESC\" min_width=\"240px\" gap=\"1.5rem\" size=\"large\" class=\"\" showcaption=\"true\" lightbox=\"true\"]<\/p>\n\n<ul>\n<li>limit=\"-1\" shows all matching images<\/li>\n<li>showcaption=\"true|false\" toggles captions<\/li>\n<li>lightbox=\"true|false\" enables the accessible lightbox<\/li>\n<\/ul>\n\n<h3>Shortcode Reference: [wpdet_gallery]<\/h3>\n\n<p><strong>Attributes<\/strong>\n- <code>category<\/code> \u2014 Category ID or slug to filter attachments (requires media taxonomies)\n- <code>tags<\/code> \u2014 CSV of tag slugs (e.g. <code>tags=\"portugal,coast\"<\/code>)\n- <code>limit<\/code> \u2014 Number of images (default 12). Use <code>-1<\/code> for all.\n- <code>order<\/code> \u2014 <code>ASC<\/code> or <code>DESC<\/code> (default <code>DESC<\/code>)\n- <code>size<\/code> \u2014 <code>thumbnail|medium|large|full<\/code> (or any registered image size)\n- <code>min_width<\/code> \u2014 Grid minimum width (CSS value, default <code>200px<\/code>)\n- <code>gap<\/code> \u2014 Grid gap (CSS value, default <code>1.5rem<\/code>)\n- <code>class<\/code> \u2014 Extra CSS classes on the wrapper\n- <code>showcaption<\/code> \u2014 <code>true|false<\/code> (default <code>true<\/code>)\n- <code>lightbox<\/code> \u2014 <code>true|false<\/code> (default <code>true<\/code>)<\/p>\n\n<h3>Markup &amp; Styles<\/h3>\n\n<ul>\n<li>Wrapper template: <code>templates\/wrapper.php<\/code><\/li>\n<li>Item template: <code>templates\/gallery.php<\/code><\/li>\n<li>CSS: <code>templates\/css\/wpdet-gallery.css<\/code><\/li>\n<li>Lightbox CSS\/JS autoload when <code>lightbox=\"true\"<\/code><\/li>\n<\/ul>\n\n<p><strong>Theme overrides (HTML-only)<\/strong><\/p>\n\n<p>your-theme\/\n\u2514\u2500\u2500 wpdet\/\n    \u2514\u2500\u2500 templates\/\n        \u251c\u2500\u2500 wrapper.php     (uses tokens: {items}, {min_width}, {gap}, {extra_class})\n        \u2514\u2500\u2500 gallery.php     (uses tokens: {link_open}, {img}, {link_close}, {caption})<\/p>\n\n<p>If present in a child theme, it\u2019s used first; then the parent theme; finally the plugin fallback.<\/p>\n\n<h3>Accessibility<\/h3>\n\n<ul>\n<li>Lightbox uses proper roles (role=\"dialog\"), aria-modal, labelled controls, focus trapping, and Esc to close.<\/li>\n<li>Close button is keyboard-operable (Enter\/Space) and returns focus to the trigger.<\/li>\n<li>Captions are announced via a polite live region.<\/li>\n<\/ul>\n\n<h3>Media Taxonomies (Categories\/Tags on Attachments)<\/h3>\n\n<p>Enable in Settings \u2192 From Image to WordPress to use core Categories and Tags on media items. This allows taxonomy-filtered galleries.\n- Works with the shortcode filters (category, tags)\n- Adds taxonomy UI to the Media screens (without duplicating existing columns)<\/p>\n\n<h3>Validation<\/h3>\n\n<ul>\n<li>MIME types: image\/jpeg, image\/png, image\/webp, image\/avif<\/li>\n<li>Max size: ~25 MB (configurable in code)<\/li>\n<\/ul>\n\n<h3>Support &amp; Documentation<\/h3>\n\n<ul>\n<li>Documentation: https:\/\/medienkonzepte.de\/easy-wordpress-publisher-a-lightroom-extension\/<\/li>\n<li>Donate: https:\/\/buymeacoffee.com\/webline<\/li>\n<\/ul>\n\n<h3>Credits<\/h3>\n\n<p>Made with \u2764\ufe0f by Detlef Beyer.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/<\/code> or install via Plugins \u2192 Add New.<\/li>\n<li>Activate the plugin.<\/li>\n<li>(Optional) In <strong>Settings \u2192 From Image to WordPress<\/strong>, enable Categories\/Tags for media (on by default after activation).<\/li>\n<li>Install the companion Lightroom Classic module <strong>Easy WordPress Publisher<\/strong> and enter your site URL, username, and an Application Password.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20the%20lightroom%20classic%20module%3F\"><h3>Do I need the Lightroom Classic module?<\/h3><\/dt>\n<dd><p>Yes. This WordPress plugin exposes REST endpoints and gallery features; the LrC module performs the upload.<\/p><\/dd>\n<dt id=\"can%20i%20show%20all%20images%20in%20a%20category%3F\"><h3>Can I show all images in a category?<\/h3><\/dt>\n<dd><p>Yes, set <code>limit=\"-1\"<\/code> in the shortcode.<\/p><\/dd>\n<dt id=\"how%20do%20captions%20work%3F\"><h3>How do captions work?<\/h3><\/dt>\n<dd><p>Captions come from the attachment\u2019s \u201cCaption\u201d (post excerpt). Toggle with <code>showcaption=\"true|false\"<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20html%20without%20touching%20php%3F\"><h3>Can I change the HTML without touching PHP?<\/h3><\/dt>\n<dd><p>Yes. Override the template files in your theme using the placeholder tokens described below.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<p>1.0.0.\n    \u2022   Initial public version with REST create\/update\/delete, taxonomy support, gallery shortcode, accessible lightbox, and theme overrides.<\/p>\n\n<p>1.0.3.\nAdded support for AVIF format<\/p>","raw_excerpt":"Publish images from Lightroom Classic directly to WordPress, manage media via REST, and show taxonomy-filtered galleries with an accessible lightbox.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/265169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=265169"}],"author":[{"embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/easywppublisher"}],"wp:attachment":[{"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=265169"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=265169"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=265169"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=265169"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=265169"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=265169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}