- Upload
document-gallery to the /wp-content/plugins/ directory - Activate the plugin through the ‘Plugins’ menu in WordPress
- Place
[dg] in any posts or pages you want a document gallery included. See below for additional display options.
Document Gallery OptionsIn order to include all compatible documents from a given page or post, you must include the following shortcode in the post: [dg] . In addition to the default behavior, the plugin provides many options to customize behavior with various attributes, some of which are shown below: [dg [fancy=] [attachment_pg=] [descriptions=] [order=] [orderby=<**see below**>]]
Though the shortcode above may seem far from “short,” none of the attributes are required and most users will find that the plugin meets your needs “out of the box” without any added attributes. Default Values Default document gallery behavior can be configured in your dashboard under Settings -> Document Gallery . Attachment Page Option (New in Version 1.1) This option determines whether each document icon will link to the actual file or to its attachment page. If you want the user to be able to click on the icon and directly receive the option to download then use attachment_pg=false (the default). If you have information on the attachment page that you want the link to go to, use attachment_pg=true . Categories/Custom Taxonomy Option (New in Version 1.4) With the categories option you are able to select attachments based on their assigned category or any other custom taxon. Categories or any custom taxon can be referenced simply by including category=category_value or taxon_name=taxon_value . Multiple values for a single taxon may be separated by commas. Note that if a taxon value contains spaces then the entire comma- delimited list must be quoted. Columns Option (New in Version 3.0) The columns option does what it sounds like — sets how many columns to use in rendering your gallery. With columns=-1 , you will get an infinite number of columns. In other words, only 1 row with all icons. Descriptions Option If true , each document will take its own line with the description displayed alongside it. Note: this will use the description field, not the caption . Be careful when entering your document data. Fancy Option (New in Version 2.0) If true , we will try to generate a thumbnail for each document in the gallery. The success in generating thumbs will depend mostly on what your server supports. To fine-tune how thumbnails are generated, visit Settings -> Document Gallery in your site’s dashboard. ID Option (New in Version 3.0) This option indicates from which parent post/page to retrieve attachments. If not explicitly set, the default will be the post/page where the shortcode is being used. If you do not wish to filter by parent, id=-1 will match all attachments. IDs Option (New in Version 1.2) This is an advanced option intended for experienced WordPress users. If this option is used, the plugin will ignore attached documents, instead including all attachments defined by the ids attribute (e.g.: ids=10,2,4,42 ). Note: If this attribute is used, order defaults to the order of IDs given rather than menu_order unless order is explicitly stated. Images Option (New in Version 1.2) This option will tell the plugin to include all images attached to to a page or post in addition to all documents. Include/Exclude Options (New in Version 3.0) As the name suggests, these options allow for explicitly adding or removing matched attachments in your gallery. Like with the IDs options above, these options take a comma-delimited list of attachment IDs. Limit Option (New in Version 2.3) As the name suggests, this value will limit how many results are returned in the gallery. If set to -1, the limit is infinite. MIME Types Option (New in Version 3.0) This is a comma-delimited list of all MIME types to be included in the gallery. Most users will not need to modify this value. One example use-case would be to include images in your gallery (which are not included by default). To do this, you would simply set mime_types=application,video,text,audio,image, where “image” is the only difference from the default value. You could also create a gallery which only includes PDFs by setting mime_types=application/pdf . New Window Option (New in Version 3.2) If true, clicking one of the documents in your gallery will open the target link in a new window/tab. Order Option This option works alongside the orderby option to determine whether the documents are displayed in ascending or descending order. Orderby Option menu_order – This is probably the one you want to use. Menu order is the order that icons appear when seen in the Insert / Upload Media Gallery dialog. To change this order, you simply drag the icons around until they are where you want them. In earlier versions of WordPress, menu_order was modified by the integer fields in the Insert / Upload Media Gallery dialog. These fields no longer exist in recent releases.title – Order by title.date – Order by upload date.modified – Order by last modified date.rand – Random order.ID – Order by post id.author – Order by author.name – Order by attachment slug.parent – Order by post/page parent id. (Only useful in conjunction with localpost=false option.)comment_count – Order by number of comments (available with WP >= 2.9).none – No order (available with Version 2.8).post__in – Preserve post ID order given in the post__in array.
Relation Option (New in Version 1.4) The relation option should only be used when also using the category or custom taxonomy option (see above). When using multiple taxa this option allows you to decide whether the attachments returned must match all of the different taxa specified (AND) or a minimum of one taxa match (OR). NOTE: This has no bearing on the relationship between different terms for a single taxon (eg: [dg category=x,y,z relation=AND] will return any attachments where the category is x, y, OR z). If you wish to return only attachments with all 3 categories, you will instead need to use the following syntax: [dg category=x,y,z category_relation=AND] . This syntax of *taxon_relation will work for any taxon, not just “category.”* Customize AppearanceThe Default Document gallery will often fit quite well with whatever theme you are using. But, if you want to change things, Document Gallery makes that easy. Just navigate to Settings -> Document Gallery and put any custom CSS in the provided text box. See style.css for all of the ids and classes being used in a Document Gallery. Example Say I would like to include a border for the right and bottom of the document icon, but only when descriptions are shown (to delineate the icon from the description text). To do this, I would need to use the following CSS: .document-icon-wrapper.descriptions .document-icon{ border-right: 1px solid #37824A; border-bottom: 1px solid #37824A;
}
Now, if I wanted to modify that code to instead add the same border to all of the document-icons, regardless of whether they have a description or not, I would just change the first line, removing the descriptions class like so: .document-icon-wrapper .document-icon
DevelopersFor those unfamiliar with content filters, here is some documentation that you should read before continuing. Filter HTML Output In Documnet Gallery version 2.2, we’ve released a more powerful HTML templating framework, making all generated output filterable, and thus configurable, by developers wishing to control the gallery output. Three different filters are provided in order to access the various segments of a gallery: dg_gallery_template , dg_row_template , and dg_icon_template . These filtered templates are used when dynamically generating output for each gallery. Each of the following filters provides an bool argument which indicates whither the gallery being generated will display descriptions, which allows you to handle galleries with and without descriptions differently. If you wish to wrap your galleries in some additional content, the dg_gallery_template is the tool for the job. With it you can include content prior to or following your document galleries. The filter exposes 2 special tags which are replaced during gallery generation with data specific to that gallery. The tag is described below: - %id%: The id attribute value for this gallery.
- %class%: The class attribute value for this gallery.
- %data%: The one ore more data-* attributes for the gallery, which are necessary for client-side operations.
- %rows%: This tag is replaced by all of the document gallery rows.
Everything before this string will be rendered before the gallery and everything after this string will be rendered following the gallery.
If you wish to modify how gallery rows are generated, dg_row_template , is provided for this purpose. This filter gives you control at the row level for how a gallery will be generated. The filter exposes 2 special tags which are replaced during gallery generation with row-specific data. These tags are as follows: - %class%: The class attribute value for this row.
- %icons%: The icon data for this row.
If you wish to modify the HTML that wraps individual icons, the dg_icon_template filter is what you will use. The filter is passed two arguments which may be used to gain additional information about the document that will be used in generating this icon. The first argument is a bool value which indicates whether descriptions will be used along with the icon and the second value is an integer WordPress attachment ID which may be used to lookup any relevant information you need specific to that document. The filter exposes 5 special tags which are replaced during gallery generation with document-specific data. These tags are as follows: - %date%: The date that the attachment was added to WordPress.
- %description%: The attachment description (only present when rendering descriptions).
- %extension%: The document file extension.
- %img%: The URL pointing the the image that will be displayed.
- %link%: The URL that will be loaded when the user clicks the icon.
- %path%: The system path pointing to the document.
- %size%: The human-readable file size formatted by
size_format. - %target%: The target attribute for the anchor tag (e.g.: _blank, _self).
- %time%: The time that the attachment was added to WordPress.
- %title%: The human-readable title of the attachment.
- %title_attribute%: The escaped title (above), safe for using HTML tag attributes.
Below is an example that uses all three above filter methods to convert the output from a div-based layout to a table-based layout with no icons, displaying the date of upload in the left column and the title as a hyperlink to the attachment in the right column. function dg_gallery_template($gallery, $use_descriptions) { if ( ! $use_descriptions ) { $gallery = ''; } return $gallery; } add_filter( 'dg_gallery_template', 'dg_gallery_template', 10, 2 ); function dg_row_template($row, $use_descriptions) { if ( ! $use_descriptions ) { $row = '%icons% '; } return $row; } add_filter( 'dg_row_template', 'dg_row_template', 10, 2 ); function dg_icon_template($icon, $use_descriptions, $id) { if ( ! $use_descriptions ) { $icon = '%date% | %title% | '; } return $icon; } add_filter( 'dg_icon_template', 'dg_icon_template', 10, 3 );
Filter Thumbnail Generation Methods Document Gallery provides the dg_thumbers filter, which allows developers to add, remove, or even re-order which methods are used to generate a thumbnail for a given attachment. The value being filtered is an array of DG_AbstractThumber objects. You will want to look at this abstract class, located in the DG source under inc/thumbers to see how to correctly implement the abstract methods. You’ll notice that DG_AbstractThumber::init() will handle creating a singleton instance of your class (though you can opt not to use this logic if you prefer). To register your implementation of DG_AbstractThumber using init() , you would simply call YourThumberClass::init() and all of the work setting up the dg_thumbers filter to include your thumber will be done for you. The following is an example taken from the Document Gallery source (with a few modifications for ease of readability), where we add thumbnail generation for all Audio/Video filetypes supported by WordPress: class ImageThumber extends DG_AbstractThumber { /** * @return string[] The extensions supported by this thumber. */ protected function getThumberExtensions() { return array( 'jpg', 'jpeg', 'jpe', 'gif', 'png' ); } /** * @param string $ID The attachment ID to retrieve thumbnail from. * @param int $pg Unused. * * @return bool|string False on failure, URL to thumb on success. */ public function getThumbnail( $ID, $pg = 1 ) { $options = DG_Thumber::getOptions(); $ret = false; if ( $icon = image_downsize( $ID, array( $options['width'], $options['height'] ) ) ) { $ret = $icon[0]; } return $ret; } /** * @return int An integer from 0 to 100. Higher priorities will be attempted before lower priority thumbers. */ public function getPriority() { return 100; } } // tells DG_AbstractThumber to create an instance of the class and apply to dg_thumbers filter ImageThumber::init();
Filter Inclusion of Default Document Gallery CSS If you wish to completely replace Document Gallery styling with your own CSS, you can prevent any any CSS being loaded by returning false in dg_use_default_gallery_style filter, like so: add_filter(‘dg_use_default_gallery_style’, ‘__return_false’); NOTE: By design, this will NOT disable inclusion of any custom CSS set at Dashboard -> Settings -> Document Gallery Modify Gallery Query If you wish to modify the query used by Document Gallery to retrieve attachments to be included in a gallery then the dg_query action allows you to do exactly that. The signature for the action is function dg_query(&$query, $taxa, &$excluded_keys, &$errs) . Each parameter is described below: - &$query: This is the query to be modified as documented in WordPress Codex.
- $taxa: The list of key/value pairs for arguments passed into
[dg] that do not match known keys. - &$excluded_keys: The list of keys to not be processed by DG. If your extension uses a key and is not intended for
DG to process, then the key should be added to this list. - &$errs: The list of errors. If something goes wrong, this list should be appended with a description of what happened.
|