[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f_55v1XxoSWH0GSDNLeciSJ70HttginyMB2ciGF_hHtY":3},{"slug":4,"display_name":5,"profile_url":6,"plugin_count":7,"total_installs":8,"avg_security_score":9,"avg_patch_time_days":10,"trust_score":11,"computed_at":12,"plugins":13},"kungtiger","Daniel Menȝies","https:\u002F\u002Fprofiles.wordpress.org\u002Fkungtiger\u002F",2,40,93,30,89,"2026-04-05T19:12:42.925Z",[14,37],{"slug":15,"name":16,"version":17,"author":5,"author_profile":6,"description":18,"short_description":19,"active_installs":8,"downloaded":20,"rating":21,"num_ratings":21,"last_updated":22,"tested_up_to":23,"requires_at_least":24,"requires_php":25,"tags":26,"homepage":32,"download_link":33,"security_score":34,"vuln_count":21,"unpatched_count":21,"last_vuln_date":35,"fetched_at":36},"kt-photogallery","Photogallery","1.4","\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.",5135,0,"2017-08-20T08:44:00.000Z","4.8.28","4.0","",[27,28,29,30,31],"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":38,"name":39,"version":40,"author":5,"author_profile":6,"description":41,"short_description":42,"active_installs":21,"downloaded":43,"rating":21,"num_ratings":21,"last_updated":25,"tested_up_to":23,"requires_at_least":44,"requires_php":25,"tags":45,"homepage":25,"download_link":47,"security_score":48,"vuln_count":21,"unpatched_count":21,"last_vuln_date":35,"fetched_at":49},"kt-dashicons","Dashicons Viewer","1.0","\u003Cp>View all WordPress Dashicons on one page. Adds a menu entry to the Tools menu.\u003C\u002Fp>\n","View all Dashicons on one page",1162,"3.8",[46],"dashicons","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fkt-dashicons.1.0.zip",100,"2026-03-15T10:48:56.248Z"]