{"id":84326,"date":"2018-04-12T13:39:52","date_gmt":"2018-04-12T13:39:52","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/presswell-art-direction\/"},"modified":"2025-11-10T20:29:39","modified_gmt":"2025-11-10T20:29:39","slug":"presswell-art-direction","status":"publish","type":"plugin","link":"https:\/\/scn.wordpress.org\/plugins\/presswell-art-direction\/","author":15825846,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.1.12","stable_tag":"trunk","tested":"6.4.8","requires":"4.0","requires_php":"","requires_plugins":null,"header_name":"Presswell Art Direction","header_author":"Presswell","header_description":"Control how image thumbnail sizes are defined, cropped, and generated.","assets_banners_color":"000000","last_updated":"2025-11-10 20:29:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"http:\/\/wordpress.org\/plugins\/","header_author_uri":"http:\/\/presswell.co","rating":5,"author_block_rating":0,"active_installs":100,"downloads":4627,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.7":{"tag":"1.0.7","author":"presswell","date":"2020-04-15 16:03:14"},"1.0.8":{"tag":"1.0.8","author":"presswell","date":"2020-06-29 17:00:35"},"1.0.9":{"tag":"1.0.9","author":"presswell","date":"2021-04-02 17:03:58"},"1.1.0":{"tag":"1.1.0","author":"presswell","date":"2021-05-18 18:45:25"},"1.1.1":{"tag":"1.1.1","author":"presswell","date":"2021-11-05 16:14:51"},"1.1.10":{"tag":"1.1.10","author":"presswell","date":"2025-03-19 15:54:23"},"1.1.11":{"tag":"1.1.11","author":"presswell","date":"2025-11-05 15:44:18"},"1.1.12":{"tag":"1.1.12","author":"presswell","date":"2025-11-10 20:29:24"},"1.1.2":{"tag":"1.1.2","author":"presswell","date":"2023-02-24 17:54:49"},"1.1.3":{"tag":"1.1.3","author":"presswell","date":"2023-04-06 14:13:29"},"1.1.4":{"tag":"1.1.4","author":"presswell","date":"2023-10-27 15:10:47"},"1.1.5":{"tag":"1.1.5","author":"presswell","date":"2023-10-30 20:17:00"},"1.1.6":{"tag":"1.1.6","author":"presswell","date":"2023-12-11 20:19:37"},"1.1.7":{"tag":"1.1.7","author":"presswell","date":"2024-07-10 15:59:14"},"1.1.8":{"tag":"1.1.8","author":"presswell","date":"2024-08-02 14:14:50"},"1.1.9":{"tag":"1.1.9","author":"presswell","date":"2025-02-11 14:44:45"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":"2"},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":1857164,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":1857164,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":1857164,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":1857164,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.7","1.0.8","1.0.9","1.1.0","1.1.1","1.1.10","1.1.11","1.1.12","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.1.7","1.1.8","1.1.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":1857164,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":1857164,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":1857164,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":1857164,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"Focal point hot-spot editing and thumbnail crop preview","2":"Plugin settings screen","3":"Custom image thumbnail sizes in media modal"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2260,133,163,216,1326],"plugin_category":[50],"plugin_contributors":[150450,155512],"plugin_business_model":[],"class_list":["post-84326","plugin","type-plugin","status-publish","hentry","plugin_tags-crop","plugin_tags-image","plugin_tags-images","plugin_tags-picture","plugin_tags-thumbnail","plugin_category-media","plugin_contributors-benplum","plugin_contributors-presswell","plugin_committers-presswell"],"banners":{"banner":"https:\/\/ps.w.org\/presswell-art-direction\/assets\/banner-772x250.png?rev=1857164","banner_2x":"https:\/\/ps.w.org\/presswell-art-direction\/assets\/banner-1544x500.png?rev=1857164","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/presswell-art-direction\/assets\/icon-128x128.png?rev=1857164","icon_2x":"https:\/\/ps.w.org\/presswell-art-direction\/assets\/icon-256x256.png?rev=1857164","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/presswell-art-direction\/assets\/screenshot-1.png?rev=1857164","caption":"Focal point hot-spot editing and thumbnail crop preview"},{"src":"https:\/\/ps.w.org\/presswell-art-direction\/assets\/screenshot-2.png?rev=1857164","caption":"Plugin settings screen"},{"src":"https:\/\/ps.w.org\/presswell-art-direction\/assets\/screenshot-3.png?rev=1857164","caption":"Custom image thumbnail sizes in media modal"},{"src":"https:\/\/ps.w.org\/presswell-art-direction\/assets\/screenshot-4.png?rev=1857164","caption":""}],"raw_content":"<!--section=description-->\n<p>Presswell Art Direction helps simplify how custom image thumbnail sizes are defined, cropped, and generated.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>Control image cropping with hot-spots<\/li>\n<li>Select custom image sizes in the WordPress editor<\/li>\n<li>Dynamically generate image thumbnails<\/li>\n<li>Delete all cached thumbnails<\/li>\n<\/ul>\n\n<p><strong><em>Image Cropping<\/em><\/strong><\/p>\n\n<p>Presswell Art Direction adds the ability to set a focal point hot-spot for all images in the media library for fine grain cropping control. Simply identify where the subject of the photo is and the plugin will crop all custom image thumbnails to ensure it stays in frame.<\/p>\n\n<p><strong><em>Thumbnail Sizes<\/em><\/strong><\/p>\n\n<p>Presswell Art Direction adds an easy to use interface for defining and editing custom image thumbnail sizes. Custom image sizes will be available for selection when inserting images in the post editor.<\/p>\n\n<p><strong><em>Dynamic Images<\/em><\/strong><\/p>\n\n<p>Presswell Art Direction prevents custom image sizes from being generated automatically. Only standard WordPress thumbnails will be generated when a new image is uploaded. All other image sizes will be dynamically generated when called via code or requested via URL, saving server space when many custom image sizes are defined. Note: URL based image generation requires that <a href=\"https:\/\/codex.wordpress.org\/Using_Permalinks\">pretty permalinks<\/a> are enabled.<\/p>\n\n<h4>Documentation<\/h4>\n\n<p><strong>pwad_add_image_size( $args )<\/strong><\/p>\n\n<ul>\n<li><strong>$args<\/strong> (array) (required) - Keyed array containing <code>name<\/code>, <code>key<\/code>, <code>height<\/code>, <code>width<\/code>, and optionally <code>thumbnails<\/code> values; Thumbnail keys are prefixed with parent's key like '[size]-[thumbnail]'<\/li>\n<\/ul>\n\n<p>Example:<\/p>\n\n<pre><code>pwad_add_image_size( array(\n  'name' =&gt; 'Square',\n  'key' =&gt; 'square',\n  'width' =&gt; '1200',\n  'height' =&gt; '1200',\n  'thumbnails' =&gt; array(\n    array(\n      'name' =&gt; 'Medium',\n      'key' =&gt; 'medium',\n      'width' =&gt; '800',\n      'height' =&gt; '800',\n    ),\n    array(\n      'name' =&gt; 'Small',\n      'key' =&gt; 'small',\n      'width' =&gt; '400',\n      'height' =&gt; '400',\n    ),\n  ),\n) );\n<\/code><\/pre>\n\n<p><strong>pwad_get_image( $attachment_ID, $size_key, $thumbnail_key )<\/strong><\/p>\n\n<ul>\n<li><strong>$attachment_ID<\/strong> (int) (required) - ID of image attachment<\/li>\n<li><strong>$size_key<\/strong> (string) (required) - Image size identifier; Overload using '[size]-[thumbnail]' pattern<\/li>\n<li><strong>$thumbnail_key<\/strong> (string) (required) - Image size thumbnail identifier<\/li>\n<\/ul>\n\n<p>Returns an image tag.<\/p>\n\n<p>Example:<\/p>\n\n<pre><code>$square_large = pwad_get_image( $img_ID, 'square' );\n$square_medium = pwad_get_image( $img_ID, 'square', 'medium' );\n$square_small = pwad_get_image( $img_ID, 'square-small' ); \/\/ Overloaded\n<\/code><\/pre>\n\n<p><strong>pwad_get_image_src( $attachment_ID, $size_key, $thumbnail_key )<\/strong><\/p>\n\n<ul>\n<li><strong>$attachment_ID<\/strong> (int) (required) - ID of image attachment<\/li>\n<li><strong>$size_key<\/strong> (string) (required) - Image size identifier; Overload using '[size]-[thumbnail]' pattern<\/li>\n<li><strong>$thumbnail_key<\/strong> (string) (required) - Image size thumbnail identifier<\/li>\n<\/ul>\n\n<p>Returns a keyed array containing the <code>file<\/code>, <code>url<\/code>, <code>path<\/code>, <code>height<\/code>, <code>width<\/code>, and <code>mime-type<\/code> values.<\/p>\n\n<p>Example:<\/p>\n\n<pre><code>$square_large = pwad_get_image_src( $img_ID, 'square' );\n$square_medium = pwad_get_image_src( $img_ID, 'square', 'medium' );\n$square_small = pwad_get_image_src( $img_ID, 'square-small' ); \/\/ Overloaded\n<\/code><\/pre>\n\n<!--section=installation-->\n<p>Install using the WordPress plugin installer, or manually as <a href=\"https:\/\/codex.wordpress.org\/Managing_Plugins\">outlined in the Codex<\/a>.<\/p>\n\n<p><strong>Configuration<\/strong><\/p>\n\n<p>Once activated, navigate to <em>Settings<\/em> -&gt; <em>Art Direction<\/em> to configure custom image thumbnail sizes.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id='how%20do%20i%20set%20a%20focal%20point%3F'><h3>How do I set a focal point?<\/h3><\/dt>\n<dd><p>When viewing an image in the media library click the 'Set Focal Point' button. Use the size dropdown to change the crop preview. Click and drag the blue focal point marker to identify the subject of the image. When finished, click the 'Save Focal Point' button to update the focal point settings and clear the image thumbnail cache for regeneration.<\/p><\/dd>\n<dt id='why%20should%20i%20set%20a%20focal%20point%3F'><h3>Why should I set a focal point?<\/h3><\/dt>\n<dd><p>Focal point hot-spots are an easy way to control the WordPress image crops because they do not requiring setting custom crop dimensions for every thumbnail size.<\/p><\/dd>\n<dt id='why%20should%20i%20use%20dynamic%20image%20thumbnails%3F'><h3>Why should I use dynamic image thumbnails?<\/h3><\/dt>\n<dd><p>Themes may define many custom image thumbnail sizes, but not all image thumbnails will be displayed on the site. Dynamic image generation ensures only the image thumbnails that are actually used are created.<\/p><\/dd>\n<dt id='why%20would%20i%20delete%20all%20cached%20images%3F'><h3>Why would I delete all cached images?<\/h3><\/dt>\n<dd><p>When migrating a large site it is beneficial to delete any generated image sizes to speed up the data transfer. Images will be re-generated dynamically when requested from the new location.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.11<\/h4>\n\n<ul>\n<li>Adding alt text support to get_image_src.<\/li>\n<\/ul>\n\n<h4>1.1.10<\/h4>\n\n<ul>\n<li>Fixing url mismatch.<\/li>\n<\/ul>\n\n<h4>1.1.9<\/h4>\n\n<ul>\n<li>Fixing filesize warning.<\/li>\n<\/ul>\n\n<h4>1.1.8<\/h4>\n\n<ul>\n<li>Adusting multisite rewerite rules.<\/li>\n<\/ul>\n\n<h4>1.1.7<\/h4>\n\n<ul>\n<li>Adding multisite support.<\/li>\n<\/ul>\n\n<h4>1.1.6<\/h4>\n\n<ul>\n<li>Fixing duplicate path on original image.<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>Fixing erroneous array key.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Fixing empty array.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Fixing errors and warnings.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Fixing issue with thumbnail sizes that match the original upload's dimensions.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Reading real image sizes.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New image regeneration method.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Fixing issue with erroneous crops.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Fixing empty image data array.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Fixing issue with character encoding in filenames.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Adding ability to disable smart caching.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Fixing permalink protocol mismatch.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Fixing media modal issue.<\/li>\n<li>Adding Elementor support.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fixing updater issue.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release.<\/li>\n<\/ul>","raw_excerpt":"Control how custom image thumbnail sizes are defined, cropped, and generated.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/84326","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=84326"}],"author":[{"embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/presswell"}],"wp:attachment":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=84326"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=84326"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=84326"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=84326"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=84326"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=84326"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}