Photogallery

Photogallery

Wordpress plugin

Install on Wordpress

App Details

This plugin is meant primarily for theme developers.

This plugin allows to collect photos from the the Media Manager and arrange them into albums.
These albums can be combined into galleries.
Both albums and galleries can be added to a theme’s navigation menu.

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.

If you found a bug or have any questions, complains or suggestions please feel free to contact me.

Theme Integration

You have to write post type template files for your theme in order for an album or gallery to work.
This gives Theme developers the most control over a frontend presentation and users a convenient way to create galleries through the WordPress dashboard.
If you install this plugin, create albums and galleries and include them into your theme’s menu, you will be disappointed, since nothing will happen.

  1. Create two php files inside your theme’s directory: single-photogallery.php and single-photoalbum.php.
    • single-photogallery.php gets called everytime a gallery is about to be viewed
    • single-photoalbum.php gets called everytime a album is about to be viewed
  2. Now you have two options.
    • You can register a custom design inside your theme’s function.php via e.g $kt_Photogallery->register_gallery_design() and call $kt_Photogallery->render() at an appropriated place inside your single-photogallery.php to render it depending on the user’s choice.
    • You fetch albums, images and thumbnail details, and render consistent HTML for all albums and galleries.
  3. Refere to the PHP API section for further details on how to retrieve album IDs, image IDs and thumbnail details.

Example

A basic example for a custom gallery design

# functions.php $kt_Photogallery->register_gallery_design ('my_gallery_design', array( 'label' => __('My Gallery Design', 'my-textdomain'), 'icon' => 'dashicons-format-gallery', 'title' => __('This is my custom gallery design', 'my-textdomain'), 'render' => 'render_my_gallery_design' )); $kt_Photogallery->register_album_design ('my_album_design', array( 'label' => __('My Album Design', 'my-textdomain'), 'icon' => 'dashicons-format-image', 'title' => __('This is my custom album design', 'my-textdomain'), 'render' => 'render_my_album_design' )); function render_my_gallery_design ($post) { global $kt_Photogallery; $album_IDs = $kt_Photogallery->get_albums($post); if ($album_IDs) { foreach ($album_IDs as $album_ID) { $album_thumbnail = $kt_Photogallery->get_thumbnail_src($album_ID); echo '<a href="' . get_permalink($album_ID) . '">'; if ($album_thumbnail) { echo '<img src="' . $album_thumbnail[0] . '" alt />'; } echo '</a>'; } } else { printf(__('The gallery %s does not contain any albums', 'my-textdomain'), esc_html($post->post_title)); } } function render_my_album_design ($post) { global $kt_Photogallery; $image_IDs = $kt_Photogallery->get_images($post); if ($image_IDs) { foreach ($image_IDs as $image_ID) { $image = get_post($image_ID); if ($image) { $image_src = wp_get_attachment_image_src($image_ID, 'medium'); if (!$image_src) { $image_src = wp_get_attachment_image_src($image_ID, 'full'); } echo '<img src="' . $image_src[0] . '" alt />'; } } } else { printf(__('The album %s does not contain any images', 'my-textdomain'), esc_html($post->post_title)); } } 

Basic integration into Twenty Fifteen:

# single-photogallery.php or single-photoalbum.php get_header(); ?> <div id="primary" class="content-area"> <main id="main" class="site-main" role="main"> <?php while (have_posts()) { the_post(); ?> <article class="hentry"> <header class="entry-header"> <?php the_title('<h1 class="entry-title">', '</h1>'); ?> </header> <div class="entry-content"> <?php $kt_Photogallery->render(); ?> </div> </article> <?php } ?> </main> </div> <?php get_footer(); 

Language & Translation

This plugin is in English (en_US) by default but comes with a German (de_DE) po-file.
There is also a pot file containing untranslated strings so you can use it if you wish to translate this plugin.
See also Using Localizations.
And especially WordPress – Poedit: Translation Secrets.

If you want your translation included in the next version of Photogallery, don’t hesitate and let me know.

  1. Get Poedit.
  2. Open the the pot file with Poedit and translate it.
  3. Save a copy as e.g kt-photogallery-fr_FR.po in /wp-content/plugins/kt-photogallery/language. The mo-file will be created automatically by Poedit if you ticked the checkbox in the preferences.

PHP API

I have included a number of functions for fetching album, image and thumbnail IDs associated with a gallery or album.
Please 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.

You do not have to create a new kt_Photogallery instance, there is already one in the global namespace.
Access all public methods via $kt_Photogallery.

  • $kt_Photogallery->get_album_count ( [$gallery_ID] )
    Returns the number of albums associated with a gallery
    Argument int|null $gallery_ID Optional – ID of a gallery. Defaults to the current ID if used inside the Loop
    Returns integer|boolean – Returns an integer on success, or false if $gallery_ID yields no gallery

  • $kt_Photogallery->get_albums ( [$gallery_ID] )
    Returns an array of album IDs associated with a gallery.
    Argument int|null $gallery_ID Optional – ID of a gallery. Defaults to the current ID if used inside the Loop
    Returns array|boolean – Returns an array of IDs on success, false if $gallery_ID yields no gallery

  • $kt_Photogallery->get_image_count ( [$album_ID] )
    Returns the number of images associated with an album
    Argument int|null $album_ID Optional – ID of an album. Defaults to the current ID if used inside the Loop
    Returns integer|boolean – Returns an integer on success, or false if $album_ID yields no album

  • $kt_Photogallery->get_images ( [$album_ID] )
    Returns an array of image IDs associated with an album.
    Argument int|null $album_ID Optional – ID of an album. Defaults to the current ID if used inside the Loop
    Returns array|boolean – Returns an array of IDs on success, false if $album_ID yields no album

  • $kt_Photogallery->get_thumbnail ( [$album_ID, [$fallback] ] )
    Returns the ID of the image (attachment) used as thumbnail for an album
    Argument int|null $album_ID Optional – ID of an album. Defaults to the current ID if used inside the Loop
    Argument boolean $fallback Optional – if true and $album_ID yields no album the method returns the ID of the first image associated with the album. Default is true
    Returns integer|false – Returns an integer on success, false if $album_ID yields no album, no thumbnail is set or a fallback could not been resolved

  • $kt_Photogallery->get_thumbnail_src ( [$album_ID, [$fallback] ] )
    Returns an ordered array with values corresponding to the (0) url, (1) width, (2) height and (3) scale of the thumbnail associated with an album.
    Argument int|null $album_ID Optional – ID of an album. Defaults to the current ID if used inside the Loop
    Argument boolean $fallback Optional – if true and $album_ID yields no album the method returns the ID of the first image associated with the album. Default is true
    Returns array|false – Returns an array on success, false if $album_ID yields no album, no thumbnail is set or a fallback could not been resolved

  • $kt_Photogallery->register_album_design ( $key, $options )

  • $kt_Photogallery->register_gallery_design ( $key, $options )
    Registers a custom design for albums and galleries respectively.
    The design will be available in the Design metabox during editing
    Returns boolean – returns true if the design was registered successfully, false on failure.
    Argument string $key Required – A key used as id inside HTML/CSS and for general identification
    Argument callable|array $options Required – A callback rendering the design on the frontend or an associative array:

    • string label – The text for the label
    • string icon – The image shown next to the label. Can be dashicons-*, an URL to an image or a base 64 encoded image
    • string title – Text used inside the HTML title attribute, usually containing a description
    • callback render ($post, $options) – 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
    • callback options ($current_options, $defaults, $post) – 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.
    • array defaults – 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.
    • callback filter ($current_options, $defaults, $post) – 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.
  • $kt_Photogallery->render( [$auto_design] )
    Main output method. Depending on the current post type the method prints out a design for a gallery or an album.
    Argument boolean auto_design optional – If set true and no design is found, take the first registered one and proceed. Default is true
    Returns boolean – Returns true on success, false otherwise

Pricing

Starting from $0 per month.

Check Out the Bluesky Feed Carousel Widget

By Common Ninja

Bluesky Feed CarouselTry For Free!

App Info

Rating

Reviewers

No reviews

Tags

album
gallery
image
photo
picture

Developed By

Daniel Menȝies

Quick & Easy

Find the Best Wordpress plugins for you

Common Ninja has a large selection of powerful Wordpress plugins that are easy to use, fully customizable, mobile-friendly and rich with features — so be sure to check them out!

Testimonial

Testimonial plugins for Wordpress

Galleries

Galleries plugins for Wordpress

SEO

SEO plugins for Wordpress

Contact Form

Contact Form plugins for Wordpress

Forms

Forms plugins for Wordpress

Social Feeds

Social Feeds plugins for Wordpress

Social Sharing

Social Sharing plugins for Wordpress

Events Calendar

Events Calendar plugins for Wordpress

Sliders

Sliders plugins for Wordpress

Analytics

Analytics plugins for Wordpress

Reviews

Reviews plugins for Wordpress

Comments

Comments plugins for Wordpress

Portfolio

Portfolio plugins for Wordpress

Maps

Maps plugins for Wordpress

Security

Security plugins for Wordpress

Translation

Translation plugins for Wordpress

Ads

Ads plugins for Wordpress

Video Player

Video Player plugins for Wordpress

Music Player

Music Player plugins for Wordpress

Backup

Backup plugins for Wordpress

Privacy

Privacy plugins for Wordpress

Optimize

Optimize plugins for Wordpress

Chat

Chat plugins for Wordpress

Countdown

Countdown plugins for Wordpress

Email Marketing

Email Marketing plugins for Wordpress

Tabs

Tabs plugins for Wordpress

Membership

Membership plugins for Wordpress

popup

popup plugins for Wordpress

SiteMap

SiteMap plugins for Wordpress

Payment

Payment plugins for Wordpress

Coming Soon

Coming Soon plugins for Wordpress

Ecommerce

Ecommerce plugins for Wordpress

Customer Support

Customer Support plugins for Wordpress

Inventory

Inventory plugins for Wordpress

Video Player

Video Player plugins for Wordpress

Testimonials

Testimonials plugins for Wordpress

Tabs

Tabs plugins for Wordpress

Social Sharing

Social Sharing plugins for Wordpress

Social Feeds

Social Feeds plugins for Wordpress

Slider

Slider plugins for Wordpress

Reviews

Reviews plugins for Wordpress

Portfolio

Portfolio plugins for Wordpress

Membership

Membership plugins for Wordpress

Forms

Forms plugins for Wordpress

Events Calendar

Events Calendar plugins for Wordpress

Contact

Contact plugins for Wordpress

Comments

Comments plugins for Wordpress

Analytics

Analytics plugins for Wordpress

Common Ninja Apps

Some of the best Common Ninja plugins for Wordpress

Browse our extensive collection of compatible plugins, and easily embed them on any website, blog, online store, e-commerce platform, or site builder.

Bluesky Feed Carousel for Wordpress logo

Bluesky Feed Carousel

Display Bluesky posts with a Bluesky feed carousel that auto updates, shows posts in a clear layout, and keeps visitors engaged.

Messenger Chat for Wordpress logo

Messenger Chat

Add Messenger Chat to your site to communicate with visitors, offer fast support, and create a smoother user experience across all pages.

MP3 Player for Wordpress logo

MP3 Player

Add an MP3 Player to your website and engage visitors with music, podcasts, and spoken audio without any setup complexity.

Subscription Button for Wordpress logo

Subscription Button

Use a subscription button to streamline recurring payments, simplify signup, and help increase conversions with seamless PayPal or Stripe integration.

All In One Chat for Wordpress logo

All In One Chat

Add a unified chat tool to your site that connects users via WhatsApp, Messenger, Telegram, or email for seamless support.

Quiz Maker for Wordpress logo

Quiz Maker

Create interactive quizzes with a quiz maker that lets you build custom questions, collect responses, and increase engagement with easy site integration.

Company Branch List for Wordpress logo

Company Branch List

Present all your locations with a clear company branch list that helps customers find nearby offices, understand key details, and enjoy a smoother experience.

Order Form for Wordpress logo

Order Form

Use an order form to let customers submit product orders, save entries, receive notifications, and collect payments through PayPal or Stripe for a smoother buying experience.

Virtual Tour for Wordpress logo

Virtual Tour

Create immersive 360 virtual tours with interactive hotspots that let visitors explore spaces, view details clearly, and experience panoramic environments seamlessly.

Age Verification for Wordpress logo

Age Verification

Verify visitor age with an age verification popup that helps you meet legal requirements, protect your business, and ensure responsible access.

Glossary for Wordpress logo

Glossary

Create an interactive glossary that displays clear definitions, images, and search options to help visitors learn terms quickly and navigate complex topics with ease.

PDF Flipbook for Wordpress logo

PDF Flipbook

Transform PDFs into interactive flipbooks with a PDF flipbook widget that improves reading and keeps visitors engaged.

Discover Apps By Platform

Discover the best apps for your website

WordPress
Wix
Shopify
Weebly
Webflow
Joomla
PrestaShop
Shift4Shop
WebsiteX5
MODX
Opencart
NopCommerce

Common Ninja Search Engine

The Common Ninja Search Engine platform helps website builders find the best site widgets, apps, plugins, tools, add-ons, and extensions! Compatible with all major website building platforms - big or small - and updated regularly, our Search Engine tool provides you with the business tools your site needs!

Multiple platforms