[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fWiTByz3CzMYhk0Ct2RAGEalCYB3gUZfCgoPfdrpM_1g":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":37,"analysis":147,"fingerprints":268},"kt-photogallery","Photogallery","1.4","Daniel Menȝies","https:\u002F\u002Fprofiles.wordpress.org\u002Fkungtiger\u002F","\u003Cp>\u003Cstrong>This plugin is meant primarily for theme developers.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>This plugin allows to collect photos from the the Media Manager and arrange them into albums.\u003Cbr \u002F>\nThese albums can be combined into galleries.\u003Cbr \u002F>\nBoth albums and galleries can be added to a theme’s navigation menu.\u003C\u002Fp>\n\u003Cp>Note that this plugin does not provide any CSS formatting and JavaScript for frontend presentation of galleries and albums. You have to format them yourself and integrate necessary JavaScript libraries, e.g Lightbox, yourself. This plugin merely gives a framework for gallery and album creation via custom post types and registration of designs for a frontend presentation.\u003C\u002Fp>\n\u003Cp>If you found a bug or have any questions, complains or suggestions please feel free to contact me.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Theme Integration\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>You have to write post type template files for your theme in order for an album or gallery to work.\u003Cbr \u002F>\nThis gives Theme developers the most control over a frontend presentation and users a convenient way to create galleries through the WordPress dashboard.\u003Cbr \u002F>\nIf you install this plugin, create albums and galleries and include them into your theme’s menu, you will be disappointed, since nothing will happen.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Create two php files inside your theme’s directory: \u003Ccode>single-photogallery.php\u003C\u002Fcode> and \u003Ccode>single-photoalbum.php\u003C\u002Fcode>.\n\u003Cul>\n\u003Cli>\u003Ccode>single-photogallery.php\u003C\u002Fcode> gets called everytime a gallery is about to be viewed\u003C\u002Fli>\n\u003Cli>\u003Ccode>single-photoalbum.php\u003C\u002Fcode> gets called everytime a album is about to be viewed\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Now you have two options.\n\u003Cul>\n\u003Cli>You can register a custom design inside your theme’s \u003Ccode>function.php\u003C\u002Fcode> via e.g \u003Ccode>$kt_Photogallery->register_gallery_design()\u003C\u002Fcode> and call \u003Ccode>$kt_Photogallery->render()\u003C\u002Fcode> at an appropriated place inside your \u003Ccode>single-photogallery.php\u003C\u002Fcode> to render it depending on the user’s choice.\u003C\u002Fli>\n\u003Cli>You fetch albums, images and thumbnail details, and render consistent HTML for all albums and galleries.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Refere to the PHP API section for further details on how to retrieve album IDs, image IDs and thumbnail details.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Example\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>A basic example for a custom gallery design\u003C\u002Fp>\n\u003Cpre>\u003Ccode># functions.php\n\n$kt_Photogallery->register_gallery_design ('my_gallery_design', array(\n  'label' => __('My Gallery Design', 'my-textdomain'),\n  'icon' => 'dashicons-format-gallery',\n  'title' => __('This is my custom gallery design', 'my-textdomain'),\n  'render' => 'render_my_gallery_design'\n));\n\n$kt_Photogallery->register_album_design ('my_album_design', array(\n  'label' => __('My Album Design', 'my-textdomain'),\n  'icon' => 'dashicons-format-image',\n  'title' => __('This is my custom album design', 'my-textdomain'),\n  'render' => 'render_my_album_design'\n));\n\nfunction render_my_gallery_design ($post) {\n  global $kt_Photogallery;\n  $album_IDs = $kt_Photogallery->get_albums($post);\n  if ($album_IDs) {\n    foreach ($album_IDs as $album_ID) {\n      $album_thumbnail = $kt_Photogallery->get_thumbnail_src($album_ID);\n      echo '\u003Ca href=\"' . get_permalink($album_ID) . '\">';\n      if ($album_thumbnail) {\n        echo '\u003Cimg src=\"' . $album_thumbnail[0] . '\" alt \u002F>';\n      }\n      echo '\u003C\u002Fa>';\n    }\n  } else {\n    printf(__('The gallery %s does not contain any albums', 'my-textdomain'), esc_html($post->post_title));\n  }\n}\n\nfunction render_my_album_design ($post) {\n  global $kt_Photogallery;\n  $image_IDs = $kt_Photogallery->get_images($post);\n  if ($image_IDs) {\n    foreach ($image_IDs as $image_ID) {\n      $image = get_post($image_ID);\n      if ($image) {\n        $image_src = wp_get_attachment_image_src($image_ID, 'medium');\n        if (!$image_src) {\n          $image_src = wp_get_attachment_image_src($image_ID, 'full');\n        }\n        echo '\u003Cimg src=\"' . $image_src[0] . '\" alt \u002F>';\n      }\n    }\n  } else {\n    printf(__('The album %s does not contain any images', 'my-textdomain'), esc_html($post->post_title));\n  }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Basic integration into \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fthemes\u002Ftwentyfifteen\" rel=\"ugc\">Twenty Fifteen\u003C\u002Fa>:\u003C\u002Fp>\n\u003Cpre>\u003Ccode># single-photogallery.php or single-photoalbum.php\nget_header();\n?>\n\u003Cdiv id=\"primary\" class=\"content-area\">\n  \u003Cmain id=\"main\" class=\"site-main\" role=\"main\">\n  \u003C?php\n  while (have_posts()) {\n    the_post();\n    ?>\n    \u003Carticle class=\"hentry\">\n      \u003Cheader class=\"entry-header\">\n      \u003C?php\n        the_title('\u003Ch1 class=\"entry-title\">', '\u003C\u002Fh1>');\n      ?>\n      \u003C\u002Fheader>\n      \u003Cdiv class=\"entry-content\">\n      \u003C?php\n        $kt_Photogallery->render();\n      ?>\n      \u003C\u002Fdiv>\n    \u003C\u002Farticle>\n    \u003C?php\n  }\n  ?>\n  \u003C\u002Fmain>\n\u003C\u002Fdiv>\n\u003C?php\nget_footer();\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Language & Translation\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>This plugin is in English (en_US) by default but comes with a German (de_DE) po-file.\u003Cbr \u002F>\nThere is also a pot file containing untranslated strings so you can use it if you wish to translate this plugin.\u003Cbr \u002F>\nSee also \u003Ca href=\"https:\u002F\u002Fdeveloper.wordpress.org\u002Fplugins\u002Finternationalization\u002Flocalization\u002F#using-localizations\" rel=\"nofollow ugc\">Using Localizations\u003C\u002Fa>.\u003Cbr \u002F>\nAnd especially \u003Ca href=\"http:\u002F\u002Fwww.cssigniter.com\u002Fignite\u002Fwordpress-poedit-translation-secrets\u002F\" rel=\"nofollow ugc\">WordPress – Poedit: Translation Secrets\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>If you want your translation included in the next version of Photogallery, don’t hesitate and let me know.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Get \u003Ca href=\"http:\u002F\u002Fpoedit.net\" rel=\"nofollow ugc\">Poedit\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Open the the pot file with Poedit and translate it.\u003C\u002Fli>\n\u003Cli>Save a copy as e.g \u003Ccode>kt-photogallery-fr_FR.po\u003C\u002Fcode> in \u003Ccode>\u002Fwp-content\u002Fplugins\u002Fkt-photogallery\u002Flanguage\u003C\u002Fcode>. The mo-file will be created automatically by Poedit if you ticked the checkbox in the preferences.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>PHP API\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>I have included a number of functions for fetching album, image and thumbnail IDs associated with a gallery or album.\u003Cbr \u002F>\nPlease note that all methods starting with an underscore are considered internal and are not documented here. Although some are publicly accessible you should not use them directly unless you know what you are doing.\u003C\u002Fp>\n\u003Cp>You do not have to create a new kt_Photogallery instance, there is already one in the global namespace.\u003Cbr \u002F>\nAccess all public methods via \u003Ccode>$kt_Photogallery\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ccode>$kt_Photogallery->get_album_count ( [$gallery_ID] )\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nReturns the number of albums associated with a gallery\u003Cbr \u002F>\n\u003Cstrong>Argument\u003C\u002Fstrong> \u003Ccode>int\u003C\u002Fcode>|\u003Ccode>null $gallery_ID\u003C\u002Fcode> \u003Cem>Optional\u003C\u002Fem> – ID of a gallery. Defaults to the current ID if used inside the Loop\u003Cbr \u002F>\n\u003Cstrong>Returns\u003C\u002Fstrong> \u003Ccode>integer\u003C\u002Fcode>|\u003Ccode>boolean\u003C\u002Fcode> – Returns an integer on success, or \u003Ccode>false\u003C\u002Fcode> if \u003Ccode>$gallery_ID\u003C\u002Fcode> yields no gallery\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ccode>$kt_Photogallery->get_albums ( [$gallery_ID] )\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nReturns an array of album IDs associated with a gallery.\u003Cbr \u002F>\n\u003Cstrong>Argument\u003C\u002Fstrong> \u003Ccode>int\u003C\u002Fcode>|\u003Ccode>null $gallery_ID\u003C\u002Fcode> \u003Cem>Optional\u003C\u002Fem> – ID of a gallery. Defaults to the current ID if used inside the Loop\u003Cbr \u002F>\n\u003Cstrong>Returns\u003C\u002Fstrong> \u003Ccode>array\u003C\u002Fcode>|\u003Ccode>boolean\u003C\u002Fcode> – Returns an array of IDs on success, \u003Ccode>false\u003C\u002Fcode> if \u003Ccode>$gallery_ID\u003C\u002Fcode> yields no gallery\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ccode>$kt_Photogallery->get_image_count ( [$album_ID] )\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nReturns the number of images associated with an album\u003Cbr \u002F>\n\u003Cstrong>Argument\u003C\u002Fstrong> \u003Ccode>int\u003C\u002Fcode>|\u003Ccode>null $album_ID\u003C\u002Fcode> \u003Cem>Optional\u003C\u002Fem> – ID of an album. Defaults to the current ID if used inside the Loop\u003Cbr \u002F>\n\u003Cstrong>Returns\u003C\u002Fstrong> \u003Ccode>integer\u003C\u002Fcode>|\u003Ccode>boolean\u003C\u002Fcode> – Returns an integer on success, or \u003Ccode>false\u003C\u002Fcode> if \u003Ccode>$album_ID\u003C\u002Fcode> yields no album\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ccode>$kt_Photogallery->get_images ( [$album_ID] )\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nReturns an array of image IDs associated with an album.\u003Cbr \u002F>\n\u003Cstrong>Argument\u003C\u002Fstrong> \u003Ccode>int\u003C\u002Fcode>|\u003Ccode>null $album_ID\u003C\u002Fcode> \u003Cem>Optional\u003C\u002Fem> – ID of an album. Defaults to the current ID if used inside the Loop\u003Cbr \u002F>\n\u003Cstrong>Returns\u003C\u002Fstrong> \u003Ccode>array\u003C\u002Fcode>|\u003Ccode>boolean\u003C\u002Fcode> – Returns an array of IDs on success, \u003Ccode>false\u003C\u002Fcode> if \u003Ccode>$album_ID\u003C\u002Fcode> yields no album\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ccode>$kt_Photogallery->get_thumbnail ( [$album_ID, [$fallback] ] )\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nReturns the ID of the image (attachment) used as thumbnail for an album\u003Cbr \u002F>\n\u003Cstrong>Argument\u003C\u002Fstrong> \u003Ccode>int\u003C\u002Fcode>|\u003Ccode>null $album_ID\u003C\u002Fcode> \u003Cem>Optional\u003C\u002Fem> – ID of an album. Defaults to the current ID if used inside the Loop\u003Cbr \u002F>\n\u003Cstrong>Argument\u003C\u002Fstrong> \u003Ccode>boolean $fallback\u003C\u002Fcode> \u003Cem>Optional\u003C\u002Fem> – if \u003Ccode>true\u003C\u002Fcode> and \u003Ccode>$album_ID\u003C\u002Fcode> yields no album the method returns the ID of the first image associated with the album. Default is \u003Ccode>true\u003C\u002Fcode>\u003Cbr \u002F>\n\u003Cstrong>Returns\u003C\u002Fstrong> \u003Ccode>integer\u003C\u002Fcode>|\u003Ccode>false\u003C\u002Fcode> – Returns an integer on success, \u003Ccode>false\u003C\u002Fcode> if \u003Ccode>$album_ID\u003C\u002Fcode> yields no album, no thumbnail is set or a fallback could not been resolved\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ccode>$kt_Photogallery->get_thumbnail_src ( [$album_ID, [$fallback] ] )\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nReturns an ordered array with values corresponding to the (0) url, (1) width, (2) height and (3) scale of the thumbnail associated with an album.\u003Cbr \u002F>\n\u003Cstrong>Argument\u003C\u002Fstrong> \u003Ccode>int\u003C\u002Fcode>|\u003Ccode>null $album_ID\u003C\u002Fcode> \u003Cem>Optional\u003C\u002Fem> – ID of an album. Defaults to the current ID if used inside the Loop\u003Cbr \u002F>\n\u003Cstrong>Argument\u003C\u002Fstrong> \u003Ccode>boolean $fallback\u003C\u002Fcode> \u003Cem>Optional\u003C\u002Fem> – if \u003Ccode>true\u003C\u002Fcode> and \u003Ccode>$album_ID\u003C\u002Fcode> yields no album the method returns the ID of the first image associated with the album. Default is \u003Ccode>true\u003C\u002Fcode>\u003Cbr \u002F>\n\u003Cstrong>Returns\u003C\u002Fstrong> \u003Ccode>array\u003C\u002Fcode>|\u003Ccode>false\u003C\u002Fcode> – Returns an array on success, \u003Ccode>false\u003C\u002Fcode> if \u003Ccode>$album_ID\u003C\u002Fcode> yields no album, no thumbnail is set or a fallback could not been resolved\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ccode>$kt_Photogallery->register_album_design ( $key, $options )\u003C\u002Fcode>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ccode>$kt_Photogallery->register_gallery_design ( $key, $options )\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nRegisters a custom design for albums and galleries respectively.\u003Cbr \u002F>\nThe design will be available in the Design metabox during editing\u003Cbr \u002F>\n\u003Cstrong>Returns\u003C\u002Fstrong> \u003Ccode>boolean\u003C\u002Fcode> – returns \u003Ccode>true\u003C\u002Fcode> if the design was registered successfully, \u003Ccode>false\u003C\u002Fcode> on failure.\u003Cbr \u002F>\n\u003Cstrong>Argument\u003C\u002Fstrong> \u003Ccode>string $key\u003C\u002Fcode> \u003Cem>Required\u003C\u002Fem> – A key used as id inside HTML\u002FCSS and for general identification\u003Cbr \u002F>\n\u003Cstrong>Argument\u003C\u002Fstrong> \u003Ccode>callable\u003C\u002Fcode>|\u003Ccode>array $options\u003C\u002Fcode> \u003Cem>Required\u003C\u002Fem> – A callback rendering the design on the frontend or an associative array:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>string label\u003C\u002Fcode> – The text for the label\u003C\u002Fli>\n\u003Cli>\u003Ccode>string icon\u003C\u002Fcode> – The image shown next to the label. Can be \u003Ccode>dashicons-*\u003C\u002Fcode>, an URL to an image or a base 64 encoded image\u003C\u002Fli>\n\u003Cli>\u003Ccode>string title\u003C\u002Fcode> – Text used inside the HTML title attribute, usually containing a description\u003C\u002Fli>\n\u003Cli>\u003Ccode>callback render ($post, $options)\u003C\u002Fcode> – Callback rendering the design on the frontend. The arguments passed are the current post as a WP_Post instance and an associative array of the options straight from the database\u003C\u002Fli>\n\u003Cli>\u003Ccode>callback options ($current_options, $defaults, $post)\u003C\u002Fcode> – Callback for additional form fields, should echo HTML. The arguments passed are an associative array of the options straight from the database, the default options as second argument and the current post as a WP_Post instance as third.\u003C\u002Fli>\n\u003Cli>\u003Ccode>array  defaults\u003C\u002Fcode> – Associative array containing default values for options. Its keys are used during saving so you should generate HTML form fields using its keys and provide a callback for filtering.\u003C\u002Fli>\n\u003Cli>\u003Ccode>callback filter ($current_options, $defaults, $post)\u003C\u002Fcode> – Callback for filtering the options before they are saved. This callback is called every time a post is saved. The arguments passed are the default options merged with the values from the current request, the default options as second argument and the current post as a WP_Post instance as third. The callback must return an associative array otherwise no options are stored.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>\u003Ccode>$kt_Photogallery->render( [$auto_design] )\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nMain output method. Depending on the current post type the method prints out a design for a gallery or an album.\u003Cbr \u002F>\n\u003Cstrong>Argument\u003C\u002Fstrong> \u003Ccode>boolean auto_design\u003C\u002Fcode> \u003Cem>optional\u003C\u002Fem> – If set \u003Ccode>true\u003C\u002Fcode> and no design is found, take the first registered one and proceed. Default is \u003Ccode>true\u003C\u002Fcode>\u003Cbr \u002F>\n\u003Cstrong>Returns\u003C\u002Fstrong> \u003Ccode>boolean\u003C\u002Fcode> – Returns \u003Ccode>true\u003C\u002Fcode> on success, \u003Ccode>false\u003C\u002Fcode> otherwise\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n","Create galleries with ease.",40,5135,0,"2017-08-20T08:44:00.000Z","4.8.28","4.0","",[19,20,21,22,23],"album","gallery","image","photo","picture","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fkt-photogallery","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fkt-photogallery.1.4.zip",85,null,"2026-03-15T15:16:48.613Z",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":11,"avg_security_score":33,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"kungtiger",2,93,30,89,"2026-04-05T20:53:24.721Z",[38,61,85,105,129],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":48,"num_ratings":49,"last_updated":50,"tested_up_to":51,"requires_at_least":17,"requires_php":17,"tags":52,"homepage":17,"download_link":57,"security_score":58,"vuln_count":59,"unpatched_count":13,"last_vuln_date":60,"fetched_at":28},"gallery-by-supsystic","Photo Gallery – Responsive Image Galleries by Supsystic","1.15.33","supsystic","https:\u002F\u002Fprofiles.wordpress.org\u002Fsupsysticcom\u002F","\u003Cp>Photo Gallery helps you create clean, responsive image galleries and album galleries without wrestling with complex settings, layouts, or custom CSS. It’s designed for site owners, content teams, and agencies who need a reliable gallery plugin that looks good on all devices, without hitting feature limits too early. Actively maintained and supported by the Supsystic team.\u003C\u002Fp>\n\u003Ch3>Photo Gallery – Responsive Image Galleries by Supsystic\u003C\u002Fh3>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F0ky3s2RXtLk?version=3&rel=0&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Ch3>Key Features\u003C\u002Fh3>\n\u003Ch4>Gallery & Album Creation\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Create image galleries and album galleries in minutes\u003C\u002Fli>\n\u003Cli>Add images individually or in bulk\u003C\u002Fli>\n\u003Cli>Reuse galleries across multiple pages\u003C\u002Fli>\n\u003Cli>Edit galleries at any time — layouts, images, and settings are never locked in\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Layout & Display\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Grid, masonry, and slider-style gallery layouts\u003C\u002Fli>\n\u003Cli>Adjustable spacing, sizing, and alignment\u003C\u002Fli>\n\u003Cli>Optional lightbox with navigation and captions (Pro)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Photo Gallery includes a wide range of gallery layouts and display options.\u003Cbr \u002F>\nYou can see examples of the available gallery types on our website:\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fsupsystic.com\u002Fgallery-examples\u002F\" rel=\"nofollow ugc\">Gallery Examples\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Performance\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Designed to avoid unnecessary overhead\u003C\u002Fli>\n\u003Cli>Responsive by default on desktop and mobile\u003C\u002Fli>\n\u003Cli>Built to work cleanly with modern WordPress themes\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Compatibility\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Works with most WordPress themes\u003C\u002Fli>\n\u003Cli>Gutenberg block and shortcode support\u003C\u002Fli>\n\u003Cli>No theme lock-in\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Pro Features (Optional)\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Advanced gallery and album layouts\u003C\u002Fli>\n\u003Cli>Lightbox display and styling controls\u003C\u002Fli>\n\u003Cli>Priority support and updates\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Documentation & Support\u003C\u002Fh3>\n\u003Cp>Need help?\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fsupsystic.com\u002Fdocumentation\u002Fgallery-getting-started\u002F\" rel=\"nofollow ugc\">Getting Started Guide\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fsupsystic.com\u002Fdocs\u002Fgallery\u002F\" rel=\"nofollow ugc\">Full Documentation Hub\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fsupsystic.com\u002Fdocumentation\u002Fgallery-video-tutorial\u002F\" rel=\"nofollow ugc\">Video Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fsupsystic.com\u002Fcontact-us\u002F\" rel=\"nofollow ugc\">Support & Contact\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Photo Gallery helps you create clean, responsive image galleries and album galleries without wrestling with complex settings, layouts, or custom CSS.",20000,2264844,92,496,"2026-02-04T13:29:00.000Z","6.9.4",[53,20,54,55,56],"album-gallery","gallery-plugin","image-gallery","photo-gallery","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgallery-by-supsystic.1.15.33.zip",98,3,"2024-03-25 00:00:00",{"slug":62,"name":63,"version":64,"author":65,"author_profile":66,"description":67,"short_description":68,"active_installs":69,"downloaded":70,"rating":71,"num_ratings":72,"last_updated":73,"tested_up_to":74,"requires_at_least":75,"requires_php":17,"tags":76,"homepage":80,"download_link":81,"security_score":82,"vuln_count":83,"unpatched_count":13,"last_vuln_date":84,"fetched_at":28},"photoswipe-masonry","Photoswipe Masonry Gallery","1.2.32","THRIVE - Web Design Gold Coast","https:\u002F\u002Fprofiles.wordpress.org\u002Fdeanoakley\u002F","\u003Cp>PhotoSwipe Masonry is an image gallery plugin for WordPress built using PhotoSwipe from Dmitry Semenov. \u003Ca href=\"http:\u002F\u002Fphotoswipe.com\u002F\" title=\"PhotoSwipe\" rel=\"nofollow ugc\">photoswipe\u003C\u002Fa>\u003Cbr \u002F>\nPhotoSwipe Masonry takes advantage of the built in gallery features of WordPress. Simply use the WordPress admin to create a gallery and insert it in the page.\u003Cbr \u002F>\nYou may need to adjust the size of the thumbnails to suit your theme in the settings.\u003C\u002Fp>\n\u003Cp>Options are under Settings > PhotoSwipe\u003C\u002Fp>\n\u003Cp>The PhotoSwipe Masonry gallery plugin allows you to:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Upload multiple images at once\u003C\u002Fli>\n\u003Cli>Easily order images via drag and drop\u003C\u002Fli>\n\u003Cli>Add a title and caption\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Via the options panel you can modify:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Thumbnail size\u003C\u002Fli>\n\u003Cli>Full image size\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Some other features include:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Keyboard control\u003C\u002Fli>\n\u003Cli>Supports multiple galleries\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>See a \u003Ca href=\"http:\u002F\u002Fthriveweb.com.au\u002Fthe-lab\u002FPhotoSwipe\u002F\" title=\"PhotoSwipeWP\" rel=\"nofollow ugc\">demo here\u003C\u002Fa>\u003C\u002Fp>\n","PhotoSwipe Masonry takes advantage of the built in gallery features of WordPress. The gallery is built using PhotoSwipe from Dmitry Semenov.",7000,171976,90,46,"2026-02-19T06:53:00.000Z","6.4.8","6.0",[20,55,77,78,79],"photoalbum","photoswipe","website-gallery","http:\u002F\u002Fthriveweb.com.au\u002Fthe-lab\u002Fphotoswipe\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fphotoswipe-masonry.1.2.32.zip",100,1,"2022-02-24 00:00:00",{"slug":86,"name":87,"version":88,"author":89,"author_profile":90,"description":91,"short_description":92,"active_installs":93,"downloaded":94,"rating":95,"num_ratings":96,"last_updated":97,"tested_up_to":51,"requires_at_least":16,"requires_php":17,"tags":98,"homepage":101,"download_link":102,"security_score":103,"vuln_count":59,"unpatched_count":13,"last_vuln_date":104,"fetched_at":28},"new-album-gallery","Album Gallery","1.7.1","A WP Life","https:\u002F\u002Fprofiles.wordpress.org\u002Fawordpresslife\u002F","\u003Cp>Album Gallery helps you organize and display your photos and videos in attractive album layouts. Whether you’re showcasing travel memories, event photos, or product galleries, this album gallery makes it simple to create organized collections that visitors can browse easily.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Free Version Demo:\u003C\u002Fstrong> \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fawplife.com\u002Fdemo\u002Falbum-gallery-free-wordpress-plugin\u002F\" rel=\"nofollow ugc\">Album Gallery\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\n\u003Cstrong>Pro Version Demo:\u003C\u002Fstrong> \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fawplife.com\u002Fdemo\u002Falbum-gallery-premium\u002F\" rel=\"nofollow ugc\">Album Gallery Premium\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\n\u003Cstrong>Where to Buy:\u003C\u002Fstrong> \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fawplife.com\u002Faccount\u002Fsignup\u002Falbum-gallery-premium\u002F\" rel=\"nofollow ugc\">Buy Flickr Album Premium\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FrUB-1FkBW48?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch4>Why Use Album Gallery?\u003C\u002Fh4>\n\u003Cp>Managing multiple images on your website can get messy. Album Gallery solves this by letting you group related photos into albums, similar to how you’d organize a physical photo album. Each album displays as a cover image, and when visitors click on it, they see all the photos inside with a smooth lightbox viewer.\u003C\u002Fp>\n\u003Cp>The album gallery works on all devices – desktops, tablets, and phones. Your albums automatically adjust to fit any screen size, so your photos always look good no matter how visitors access your site.\u003C\u002Fp>\n\u003Ch4>What You Can Create\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Photo Albums\u003C\u002Fstrong> – Group vacation photos, family events, or any image collection\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Video Albums\u003C\u002Fstrong> – Organize video content with thumbnail previews\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Mixed Media Albums\u003C\u002Fstrong> – Combine photos and videos in the same album\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Portfolio Galleries\u003C\u002Fstrong> – Showcase your work with hover effects\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Free Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Responsive album gallery design\u003C\u002Fli>\n\u003Cli>Flexible column layouts (1-6 columns)\u003C\u002Fli>\n\u003Cli>Lightbox image viewer\u003C\u002Fli>\n\u003Cli>Video support with embedded players\u003C\u002Fli>\n\u003Cli>Multiple hover effects\u003C\u002Fli>\n\u003Cli>Animation effects on load\u003C\u002Fli>\n\u003Cli>Widget support for sidebars\u003C\u002Fli>\n\u003Cli>Title bar customization\u003C\u002Fli>\n\u003Cli>Shortcode for easy embedding\u003C\u002Fli>\n\u003Cli>Works with all themes\u003C\u002Fli>\n\u003Cli>Import and export galleries\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Pro Features\u003C\u002Fh4>\n\u003Cp>Upgrade to Album Gallery Pro for additional capabilities:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Advanced column layout options\u003C\u002Fli>\n\u003Cli>Custom gallery thumbnail sizes\u003C\u002Fli>\n\u003Cli>Extended animation effects library\u003C\u002Fli>\n\u003Cli>More hover effect styles\u003C\u002Fli>\n\u003Cli>Video autoplay settings\u003C\u002Fli>\n\u003Cli>Loop and slideshow settings\u003C\u002Fli>\n\u003Cli>Color picker for full customization\u003C\u002Fli>\n\u003Cli>Custom CSS support\u003C\u002Fli>\n\u003Cli>Priority support\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How It Works\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Create a new album from the Album Gallery menu\u003C\u002Fli>\n\u003Cli>Upload your photos or add video URLs\u003C\u002Fli>\n\u003Cli>Configure display settings (columns, effects, lightbox)\u003C\u002Fli>\n\u003Cli>Copy the shortcode and paste it into any page or post\u003C\u002Fli>\n\u003Cli>Your album gallery is live\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>You can also add album galleries to sidebars using the text widget with shortcodes.\u003C\u002Fp>\n","Create stunning photo and video albums with responsive layouts, lightbox display, and customizable hover effects.",4000,165633,96,27,"2026-03-09T07:02:00.000Z",[53,55,99,56,100],"lightbox","video-gallery","https:\u002F\u002Fawplife.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fnew-album-gallery.1.7.1.zip",97,"2025-02-28 00:00:00",{"slug":106,"name":107,"version":108,"author":109,"author_profile":110,"description":111,"short_description":112,"active_installs":113,"downloaded":114,"rating":115,"num_ratings":116,"last_updated":117,"tested_up_to":118,"requires_at_least":119,"requires_php":17,"tags":120,"homepage":125,"download_link":126,"security_score":127,"vuln_count":83,"unpatched_count":83,"last_vuln_date":128,"fetched_at":28},"facebook-photo-fetcher","Social Photo Fetcher","3.0.4","JK","https:\u002F\u002Fprofiles.wordpress.org\u002Fjustin_k\u002F","\u003Cp>Social Photo Fetcher (previously called “Facebook Photo Fetcher”) allows you to quickly and easily generate WordPress photo galleries from Facebook albums.\u003C\u002Fp>\n\u003Cp>The idea was inspired by \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Ffotobook\u002F\" rel=\"ugc\">Fotobook\u003C\u002Fa>, though its approach is fundamentally different: while Fotobook’s emphasis is on automation, this plugin allows a great deal of customization.  With it you can create galleries in any Post or Page you like, right alongside your regular content. You do this simply by putting a “magic HTML tag” in the post’s content – much like \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FGallery_Shortcode\" rel=\"nofollow ugc\">WordPress Shortcode\u003C\u002Fa>. Upon saving, the tag will instantly be populated with the Facebook album content. Presentation is fully customizable via parameters to the “magic tag” – you can choose to show only a subset of an album’s photos, change the number of photos per column, show photo captions, and more.  Plus, Social Photo Fetcher doesn’t limit you to just your own albums: it can create galleries from fanpages as well.\u003C\u002Fp>\n\u003Cp>Features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Uses Facebook’s API to instantly create WordPress photo galleries from Facebook albums.\u003C\u002Fli>\n\u003Cli>Galleries are fully customizable: you can import complete albums, select excerpts, random excerpts, album descriptions, photo captions, and more.\u003C\u002Fli>\n\u003Cli>Galleries can be organized however you like: in any post or page, alone or alongside your other content.\u003C\u002Fli>\n\u003Cli>Simple PHP template function allows programmers to manually embed albums in any template or widget.\u003C\u002Fli>\n\u003Cli>Built-in LightBox: Photos appear in attractive pop-up overlays without the need for any other plugins.\u003C\u002Fli>\n\u003Cli>Admin panel handles all the setup for you: Just login and you’re ready to start making albums.\u003C\u002Fli>\n\u003Cli>No custom database tables required; galleries live in regular post content.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For a Demo Gallery, see the \u003Ca href=\"https:\u002F\u002Fwww.justin-klein.com\u002Fprojects\u002Ffacebook-photo-fetcher\" rel=\"nofollow ugc\">plugin’s homepage\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Donate\u003C\u002Fh3>\n\u003Cp>Many hours have gone into developing & maintaining this plugin, far beyond my own personal needs. If you find it useful, please consider \u003Ca href=\"https:\u002F\u002Fwww.justin-klein.com\u002Fprojects\u002Ffacebook-photo-fetcher\u002F#donate\" rel=\"nofollow ugc\">making a donation\u003C\u002Fa> to help support its continued development.\u003C\u002Fp>\n\u003Ch3>Privacy\u003C\u002Fh3>\n\u003Cp>This plugin uses the Facebook API to fetch photo albums from Facebook. Facebook’s security rules require that apps must authorize from one specific, known location. In order comply with this requirement, when you first authorize the plugin from its admin panel, a Facebook dialog will be initiated via my own authentication server. The dialog itself is shown directly by Facebook, and Facebook handles the entire login process – no personal information will be transferred via my server, as Facebook only supplies a single-use token which I then hand back to your site to be stored. This is what the plugin uses in order to fetch the photos. For more information about how the Facebook authorization process works, please see \u003Ca href=\"https:\u002F\u002Fdevelopers.facebook.com\u002Fdocs\u002Ffacebook-login\u002Fweb\" rel=\"nofollow ugc\">Facebook’s documentation\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Usage of this plugin means the site administrator is consenting to \u003Ca href=\"https:\u002F\u002Fwww.facebook.com\u002Fpolicy.php\" rel=\"nofollow ugc\">Facebook’s data policy\u003C\u002Fa>. Fetched album data will be stored in your WordPress database, in posts or pages of your choosing. It can be removed by deleting those posts or pages. You are solely responsible for the security and protection of the fetched data, as it resides on and is hosted within your own WordPress site.\u003C\u002Fp>\n\u003Cp>I do not store or process any of your data.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>Please direct all support requests \u003Ca href=\"https:\u002F\u002Fwww.justin-klein.com\u002Fprojects\u002Ffacebook-photo-fetcher#feedback\" rel=\"nofollow ugc\">here\u003C\u002Fa>\u003C\u002Fp>\n","Allows you to automatically create Wordpress photo galleries from Facebook albums.  Simple to use and highly customizable.",1000,258658,74,12,"2024-04-04T23:45:00.000Z","6.5.8","2.5",[121,20,122,123,124],"facebook","images","photos","pictures","https:\u002F\u002Fwww.justin-klein.com\u002Fprojects\u002Ffacebook-photo-fetcher","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffacebook-photo-fetcher.3.0.4.zip",70,"2025-12-08 00:00:00",{"slug":130,"name":131,"version":132,"author":65,"author_profile":66,"description":133,"short_description":134,"active_installs":113,"downloaded":135,"rating":136,"num_ratings":137,"last_updated":138,"tested_up_to":139,"requires_at_least":140,"requires_php":17,"tags":141,"homepage":143,"download_link":144,"security_score":145,"vuln_count":59,"unpatched_count":83,"last_vuln_date":146,"fetched_at":28},"photospace-responsive","Photospace Responsive Gallery","2.2.0","\u003Cp>Based on the Galleriffic gallery, Photospace takes advantage of the built in gallery features of WordPress.\u003Cbr \u002F>\nThen simply use the WordPress admin to create a gallery and insert it in the page. You may need to adjust the size of the gallery to suit your theme in the settings.\u003C\u002Fp>\n\u003Cp>Since WordPress 5 you need to embed the gallery using the classic editor.\u003C\u002Fp>\n\u003Cp>Make a note of your settings as with the last major update, you will need re-save your settings.\u003C\u002Fp>\n\u003Cp>The Photospace gallery plugin allows you to:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Upload multiple images at once\u003C\u002Fli>\n\u003Cli>Easily order images via drag and drop\u003C\u002Fli>\n\u003Cli>Add a title, caption and description\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Via the options panel you can modify:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Thumbnail number, size and shape\u003C\u002Fli>\n\u003Cli>Size of the main image\u003C\u002Fli>\n\u003Cli>The width of the main images\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Some other features include:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Keyboard control\u003C\u002Fli>\n\u003Cli>Pagination\u003C\u002Fli>\n\u003Cli>Supports multiple galleries (Displayed via multiple posts)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>See a \u003Ca href=\"http:\u002F\u002Fthriveweb.com.au\u002Fthe-lab\u002Fphotospace-responsive\u002F\" title=\"Photospace Resposive\" rel=\"nofollow ugc\">demo here\u003C\u002Fa>\u003C\u002Fp>\n","A simplified version of Photospace featuring a responsive only layout.",45161,94,11,"2023-09-12T23:58:00.000Z","6.3.8","3.0",[20,55,77,142,79],"photogallery","http:\u002F\u002Fthriveweb.com.au\u002Fthe-lab\u002Fphotospace-responsive\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fphotospace-responsive.2.2.0.zip",60,"2025-09-27 00:00:00",{"attackSurface":148,"codeSignals":226,"taintFlows":260,"riskAssessment":261,"analyzedAt":267},{"hooks":149,"ajaxHandlers":216,"restRoutes":223,"shortcodes":224,"cronEvents":225,"entryPointCount":83,"unprotectedCount":13},[150,155,159,163,167,171,175,179,183,187,191,195,200,204,208,212],{"type":151,"name":152,"callback":153,"file":154,"line":11},"action","init","_register_post_types","kt-photogallery.php",{"type":151,"name":156,"callback":157,"file":154,"line":158},"plugins_loaded","_init",41,{"type":151,"name":160,"callback":161,"file":154,"line":162},"admin_head","_add_help_tabs",42,{"type":151,"name":164,"callback":165,"file":154,"line":166},"admin_menu","_menu",43,{"type":151,"name":168,"callback":169,"file":154,"line":170},"admin_enqueue_scripts","_enqueue_scripts",44,{"type":151,"name":172,"callback":173,"file":154,"line":174},"edit_form_after_title","_render_grid_metabox",45,{"type":176,"name":177,"callback":178,"file":154,"line":72},"filter","post_updated_messages","_update_messages",{"type":151,"name":180,"callback":181,"file":154,"line":182},"add_meta_boxes_photogallery","_add_gallery_metaboxes",47,{"type":151,"name":184,"callback":185,"file":154,"line":186},"add_meta_boxes_photoalbum","_add_album_metaboxes",48,{"type":151,"name":188,"callback":189,"file":154,"line":190},"save_post_photogallery","_save_gallery_metadata",49,{"type":151,"name":192,"callback":193,"file":154,"line":194},"save_post_photoalbum","_save_album_metadata",50,{"type":176,"name":196,"callback":197,"priority":198,"file":154,"line":199},"wp_editor_settings","_slim_editor",10,52,{"type":176,"name":201,"callback":202,"file":154,"line":203},"manage_photoalbum_posts_columns","_add_custom_album_columns",54,{"type":151,"name":205,"callback":206,"priority":83,"file":154,"line":207},"manage_photoalbum_posts_custom_column","_render_custom_album_columns",55,{"type":176,"name":209,"callback":210,"file":154,"line":211},"manage_photogallery_posts_columns","_add_custom_gallery_columns",56,{"type":151,"name":213,"callback":214,"priority":83,"file":154,"line":215},"manage_photogallery_posts_custom_column","_render_custom_gallery_columns",57,[217],{"action":218,"nopriv":219,"callback":220,"hasNonce":221,"hasCapCheck":219,"file":154,"line":222},"load_albums",false,"_ajax_load_albums",true,51,[],[],[],{"dangerousFunctions":227,"sqlUsage":228,"outputEscaping":230,"fileOperations":13,"externalRequests":13,"nonceChecks":258,"capabilityChecks":32,"bundledLibraries":259},[],{"prepared":13,"raw":13,"locations":229},[],{"escaped":231,"rawEcho":116,"locations":232},17,[233,236,238,240,242,244,246,248,250,252,254,256],{"file":154,"line":234,"context":235},139,"raw output",{"file":154,"line":237,"context":235},143,{"file":154,"line":239,"context":235},155,{"file":154,"line":241,"context":235},160,{"file":154,"line":243,"context":235},553,{"file":154,"line":245,"context":235},561,{"file":154,"line":247,"context":235},567,{"file":154,"line":249,"context":235},572,{"file":154,"line":251,"context":235},579,{"file":154,"line":253,"context":235},647,{"file":154,"line":255,"context":235},655,{"file":154,"line":257,"context":235},686,5,[],[],{"summary":262,"deductions":263},"The \"kt-photogallery\" v1.4 plugin exhibits a generally strong security posture based on the static analysis. The complete absence of raw SQL queries and reliance on prepared statements is a significant strength, as is the lack of known vulnerabilities and CVEs. The plugin also demonstrates good practices with the presence of nonce checks and capability checks on its entry points.  However, a notable concern arises from the output escaping. With 59% of outputs properly escaped, this leaves 41% potentially vulnerable to Cross-Site Scripting (XSS) attacks. While the attack surface is small and seemingly protected, this lack of comprehensive output sanitization is the most significant risk identified in the code analysis.",[264],{"reason":265,"points":266},"Inconsistent output escaping",8,"2026-03-16T22:12:24.754Z",{"wat":269,"direct":280},{"assetPaths":270,"generatorPatterns":273,"scriptPaths":274,"versionParams":276},[271,272],"\u002Fwp-content\u002Fplugins\u002Fkt-photogallery\u002Fkt-photogallery.css","\u002Fwp-content\u002Fplugins\u002Fkt-photogallery\u002Fsortselect-1.3.js",[],[272,275],"\u002Fwp-content\u002Fplugins\u002Fkt-photogallery\u002Fkt-photogallery.js",[277,278,279],"kt-photogallery\u002Fkt-photogallery.css?ver=1.4","kt-photogallery\u002Fsortselect-1.3.js?ver=1.3","kt-photogallery\u002Fkt-photogallery.js?ver=1.4",{"cssClasses":281,"htmlComments":285,"htmlAttributes":286,"restEndpoints":289,"jsGlobals":290,"shortcodeOutput":293},[282,283,284],"kt-column","kt-thumbnail","kt-photogallery-wrap",[],[287,288],"data-album-id","data-gallery-id",[],[291,292],"ktPhotogallery","ktAlbum",[294,295],"[kt_photogallery]","[kt_photoalbum]"]