{"id":13414,"date":"2011-05-26T14:40:39","date_gmt":"2011-05-26T14:40:39","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/mini-loops\/"},"modified":"2021-06-16T21:55:50","modified_gmt":"2021-06-16T21:55:50","slug":"mini-loops","status":"closed","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/mini-loops\/","author":2879521,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.1","stable_tag":"1.4.1","tested":"5.7.15","requires":"3.5","requires_php":"","requires_plugins":"","header_name":"Mini Loops","header_author":"Kailey Lampert","header_description":"","assets_banners_color":"f7f7f7","last_updated":"2021-06-16 21:55:50","external_support_url":"","external_repository_url":"","donate_link":"http:\/\/kaileylampert.com\/donate\/","header_plugin_uri":"http:\/\/trepmal.com\/plugins\/mini-loops\/","header_author_uri":"http:\/\/kaileylampert.com","rating":4.7,"author_block_rating":0,"active_installs":500,"downloads":37030,"num_ratings":15,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1":{"tag":"0.1","author":"trepmal","date":"2011-05-27 14:46:10"},"0.2":{"tag":"0.2","author":"trepmal","date":"2011-05-28 03:39:07"},"0.3":{"tag":"0.3","author":"trepmal","date":"2011-06-26 04:49:10"},"0.4":{"tag":"0.4","author":"trepmal","date":"2011-08-07 23:24:20"},"0.5":{"tag":"0.5","author":"trepmal","date":"2011-08-19 04:59:36"},"0.6":{"tag":"0.6","author":"trepmal","date":"2011-08-19 05:33:13"},"0.7":{"tag":"0.7","author":"trepmal","date":"2011-09-09 03:22:44"},"0.8":{"tag":"0.8","author":"trepmal","date":"2011-11-01 03:00:44"},"0.9":{"tag":"0.9","author":"trepmal","date":"2011-11-10 05:09:18"},"1.0":{"tag":"1.0","author":"trepmal","date":"2011-12-31 05:15:49"},"1.0.1":{"tag":"1.0.1","author":"trepmal","date":"2012-04-28 04:49:26"},"1.1":{"tag":"1.1","author":"trepmal","date":"2012-06-12 14:42:52"},"1.1.1":{"tag":"1.1.1","author":"trepmal","date":"2012-06-12 14:51:44"},"1.1.2":{"tag":"1.1.2","author":"trepmal","date":"2013-01-26 14:15:24"},"1.2":{"tag":"1.2","author":"trepmal","date":"2013-05-23 01:29:44"},"1.3":{"tag":"1.3","author":"trepmal","date":"2016-02-07 03:02:34"},"1.3.1":{"tag":"1.3.1","author":"trepmal","date":"2016-02-09 06:29:35"},"1.4":{"tag":"1.4","author":"trepmal","date":"2021-06-13 03:04:05"},"1.4.1":{"tag":"1.4.1","author":"trepmal","date":"2021-06-16 21:55:50"}},"upgrade_notice":{"1.4.1":"<p>Fix: Corrects sloppy shortcode fixes and Mini-Mini-Loops widget default settings.<\/p>","1.4":"<p>General updates, improved shortcode compat with the Block Editor.<\/p>","1.3":"<p>New: Automatically clear thumbnail cache and more. See Changelog<\/p>","1.2":"<p>New: [author_avatar], replaced deprecated function, Ajax! Multisite! (See Changelog)<\/p>","1.1.2":"<p>Fix: imbalanced tags if zero posts match query<\/p>","1.1":"<p>New: Lots! See the changelog for details.<\/p>","1.0":"<p>New: get from first category if viewing single post.<\/p>","0.9":"<p>New: multisite support, better image handling.<\/p>","0.8":"<p>New: new item format options (custom fields and taxonomies).<\/p>","0.7":"<p>New: more excerpt options<\/p>","0.6":"<p>New: get posts from current category (if archive) option.<\/p>","0.5":"<p>Real image croping for thumbnails and several other new features. See Changelog.<\/p>"},"ratings":{"1":1,"2":0,"3":0,"4":0,"5":14},"assets_icons":[],"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":2546965,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1.0","1.0.1","1.1","1.1.1","1.1.2","1.2","1.3","1.3.1","1.4","1.4.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":2546965,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":2546965,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":2546965,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":2546965,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"Widget Options","2":"Sample Format 1 (see Other Notes)","3":"Sample Format 2 (see Other Notes)","4":"Sample Format 3 (see Other Notes)","5":"Widget Options (pre 1.1)"}},"plugin_section":[],"plugin_tags":[4898,4897,2281,1083,1326],"plugin_category":[43,50],"plugin_contributors":[80314],"plugin_business_model":[],"class_list":["post-13414","plugin","type-plugin","status-closed","hentry","plugin_tags-category-posts","plugin_tags-most-recent","plugin_tags-recent","plugin_tags-recent-posts","plugin_tags-thumbnail","plugin_category-customization","plugin_category-media","plugin_contributors-trepmal","plugin_committers-trepmal"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/mini-loops_f7f7f7.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/mini-loops\/assets\/screenshot-1.png?rev=2546965","caption":"Widget Options"},{"src":"https:\/\/ps.w.org\/mini-loops\/assets\/screenshot-2.png?rev=2546965","caption":"Sample Format 1 (see Other Notes)"},{"src":"https:\/\/ps.w.org\/mini-loops\/assets\/screenshot-3.png?rev=2546965","caption":"Sample Format 2 (see Other Notes)"},{"src":"https:\/\/ps.w.org\/mini-loops\/assets\/screenshot-4.png?rev=2546965","caption":"Sample Format 3 (see Other Notes)"}],"raw_content":"<!--section=description-->\n<p>Widget for mini post loops.<\/p>\n\n<p>Show most recent posts, posts from categories, and more. Can be displayed via widgets, shortcodes, and template tags.<\/p>\n\n<p>Development is now happening at the <a href=\"https:\/\/github.com\/trepmal\/mini-loops\">GitHub Repo<\/a>\nExplanation of options:<\/p>\n\n<h4>Widget Display<\/h4>\n\n<p><strong>Title:<\/strong> Your recent posts widget's title on your sidebar. Default: Recent Posts\n    [miniloop title=\"Recent Posts\"]\n    get_miniloops( array('title' =&gt; 'Recent Posts' ) );<\/p>\n\n<p><strong>Title URL:<\/strong> The page the title should link to. Default: none\n    [miniloop title_url=\"\/blog\/\"]\n    get_miniloops( array('title_url' =&gt; '\/blog\/'' ) );<\/p>\n\n<h4>Building the Query<\/h4>\n\n<p><strong>Number of Posts:<\/strong> Number of posts to be displayed. Default: 3\n    [miniloop number_posts=3]\n    get_miniloops( array('number_posts' =&gt; 3 ) );<\/p>\n\n<p><strong>Post Offset:<\/strong> Number of posts to skip before displaying the list. Default: 0\n    [miniloop post_offset=0]\n    get_miniloops( array('post_offset' =&gt; 0 ) );<\/p>\n\n<p><strong>Maximum Age:<\/strong> Don't show posts more than X days old Default: 0\n    [miniloop maximum_age=0]\n    get_miniloops( array('maximum_age' =&gt; 0 ) );<\/p>\n\n<p><strong>Post Author:<\/strong> Get author's post. By ID. Default: none\n    [miniloop post_author=0]\n    get_miniloops( array('post_author' =&gt; 0 ) );<\/p>\n\n<p><strong>Post Type:<\/strong> Post type to display. Default: post\n    [miniloop post_type=post]\n    get_miniloops( array('post_type' =&gt; 'post' ) );<\/p>\n\n<p><strong>Post Status:<\/strong> Post status to display. Primarily useful to show upcoming (future) posts. But be creative! Default: publish\n    [miniloop post_status=publish]\n    get_miniloops( array('post_status' =&gt; 'publish' ) );<\/p>\n\n<p><strong>Order By:<\/strong> What order the posts should be displayed in. Default: date\n    [miniloop order_by=date]\n    get_miniloops( array('order_by' =&gt; 'date' ) );<\/p>\n\n<p><strong>Order:<\/strong> Ascending (good for order by title) or Descending (good for order by date) Default: DESC\n    [miniloop order=DESC]\n    get_miniloops( array('order' =&gt; 'DESC' ) );<\/p>\n\n<p><strong>Ordering by the values of <code>some_key<\/code><\/strong> (works well if the values of <code>some_key<\/code> are strings\/words):\n    [miniloop order_by=meta_value order_meta_key=some_key]\n    get_miniloops( array('order_by' =&gt; 'meta_value', 'order_meta_key' =&gt; 'some_key' ) );<\/p>\n\n<p><strong>Ordering by the numeric values of <code>some_key<\/code><\/strong> (works well if the values of <code>some_key<\/code> are numbers\/integers):\n    [miniloop order_by=meta_value_num order_meta_key=some_key]\n    get_miniloops( array('order_by' =&gt; 'meta_value_num', 'order_meta_key' =&gt; 'some_key' ) );<\/p>\n\n<p><strong>Show posts in reverse order?<\/strong> Perhaps you want the 3 most recent posts, but you want the oldest of those to be displayed first. If so, check this. Default: 0\n    [miniloop reverse_order=0]\n    get_miniloops( array('reverse_order' =&gt; 0 ) );<\/p>\n\n<p><strong>Shuffle post order?<\/strong> Shuffle the order of the posts matching your query. Perhaps showing the 5 most recent posts in randomized order. Default: 0\n    [miniloop shuffle_order=0]\n    get_miniloops( array('shuffle_order' =&gt; 0 ) );<\/p>\n\n<p><strong>Ignore sticky posts?<\/strong> Treat sticky posts as normal posts. I recommend ignoring, or the number of posts displayed may be inconsistent. Default: 1\n    [miniloop ignore_sticky=1]\n    get_miniloops( array('ignore_sticky' =&gt; 1 ) );<\/p>\n\n<p><strong>Exclude sticky posts?<\/strong> Don't show sticky posts at all. Default: 0\n    [miniloop exclude_sticky=0]\n    get_miniloops( array('exclude_sticky' =&gt; 0 ) );<\/p>\n\n<p><strong>Only sticky posts?<\/strong> Show only sticky posts. Default: 0\n    [miniloop only_sticky=0]\n    get_miniloops( array('only_sticky' =&gt; 0 ) );<\/p>\n\n<p><strong>If viewing a single post, exclude it?<\/strong> If viewing a single post, remove it from the widget display. Default: 1\n    [miniloop exclude_current=1]\n    get_miniloops( array('exclude_current' =&gt; 1 ) );<\/p>\n\n<p><strong>Get posts from current category (if archive)?<\/strong> If viewing an archive, only show posts from the same category. Default: 0\n    [miniloop current_category=1]\n    get_miniloops( array('current_category' =&gt; 1 ) );<\/p>\n\n<p><strong>Get posts from first category (if single)?<\/strong> If viewing a single post, only show posts from the first category. Default: none\n    [miniloop current_single_category=1]\n    get_miniloops( array('current_single_category' =&gt; 1 ) );<\/p>\n\n<p><strong>Get posts from current author (if single or archive)?<\/strong> Show more posts from the current author. Default: none\n    [miniloop current_author=1]\n    get_miniloops( array('current_author' =&gt; 1 ) );<\/p>\n\n<p><strong>Categories:<\/strong> Comma separated list of category IDs to pull from. Use negative ID numbers to exclude a category. Default: none\n    [miniloop categories=\"1,8,13\"]\n    get_miniloops( array('categories' =&gt; '1,8,13' ) );<\/p>\n\n<p><strong>Tags:<\/strong> Comma separated list of tag IDs to pull from. Use negative ID numbers to exclude a tag. Default: none\n    [miniloop tags=\"15,40,88\"]\n    get_miniloops( array('tags' =&gt; '15,40,88' ) );<\/p>\n\n<p><strong>Custom Taxonomies:<\/strong> A clunky way to support custom taxonomies. Default: none. To include terms 5, 6, 9 from taxonomy \"Genre\" do this:\n    [miniloop tax=\"genre=5,6,9\"]\n    get_miniloops( array('tax' =&gt; 'genre=5,6,9' ) );<\/p>\n\n<p><strong>Custom Fields:<\/strong> For listing posts that have certain meta data. Default: none. To list posts that have a custom field 'favorite_color' with a value of 'blue' do this:\n    [miniloop custom_fields=\"favorite_color=blue\"]\n    get_miniloops( array('custom_fields' =&gt; 'favorite_color=blue' ) );<\/p>\n\n<p><strong>Exclude Posts:<\/strong> A comma separated list of post IDs to exclude. Default: none\n    [miniloop exclude=\"15,200,1032\"]\n    get_miniloops( array('exclude' =&gt; '15,200,1032' ) );<\/p>\n\n<h4>Display<\/h4>\n\n<p><strong>Before Items:<\/strong> Text\/HTML to insert before the post list. Default: <code>&lt;ul&gt;<\/code>\n    [miniloop before_items=\"\"]\n    get_miniloops( array('before_items' =&gt; '' ) );<\/p>\n\n<p><strong>After Items:<\/strong> Text\/HTML to insert after the post list. Default: <code>&lt;\/ul&gt;<\/code>\n    [miniloop after_items=\"\"]\n    get_miniloops( array('after_items' =&gt; '' ) );<\/p>\n\n<p><strong>Item Format:<\/strong>\nHTML and shortcodes to format each item<\/p>\n\n<h4>Shortcodes<\/h4>\n\n<ul>\n<li>[ml_title]<\/li>\n<li>[ml_url]<\/li>\n<li>[ml_excerpt] Attributes: length (100), wlength (0), after ('...'), space_between (0), after_link (1), custom (0), strip_tags (1), strip_shortcodes (1)\n\n<ul>\n<li>length = excerpt length in characters (0 for none, -1 for full length)<\/li>\n<li>wlength = excerpt length in words<\/li>\n<li>after = what to show after the excerpt<\/li>\n<li>space_between = force space between excerpt and 'after'<\/li>\n<li>after_link = make the 'after' link to the post<\/li>\n<li>custom = 1 to default\/customized excerpts, 0 to trim by lentgh<\/li>\n<li>strip_tags = 1 to strip HTML tags, 0 to keep. <strong>CAREFUL:<\/strong> it is not generally recommended to keep the tags. Character excerpts may break tags, and thus break an entire page's layout.<\/li>\n<li>strip_shortcodes = 1 to strip shortcodes, 0 to keep<\/li>\n<li>up_to_more = 1 to get everything up to the <code>&lt;!--more--&gt;<\/code> tag (the 'more' text), if it exists, otherwise use char\/word limit excerpt. 0 use char\/word limited excerpt<\/li>\n<li>after_with_more = (with up_to_more) 1 to use the 'after' text with the 'more' text, 0 to add nothing after the 'more' text<\/li>\n<\/ul><\/li>\n<li>[ml_content]<\/li>\n<li>[ml_comment_count]<\/li>\n<li>[ml_author]<\/li>\n<li>[ml_author_link]<\/li>\n<li>[ml_author_avatar] Attributes: size (92), default (''), alt (false)\n\n<ul>\n<li>size = avatar size, in pixels<\/li>\n<li>default = default if no gravatar. See Settings &gt; Discussion<\/li>\n<li>alt = alt text<\/li>\n<\/ul><\/li>\n<li>[ml_field] Attributes: name, single (1), separator (', '), reverse (0)\n\n<ul>\n<li>name = custom field name<\/li>\n<li>single = 1 get single value, 0 get all values matching name<\/li>\n<li>separator = string to separate each value<\/li>\n<li>reverse = 0 default order, 1 reverse display order<\/li>\n<\/ul><\/li>\n<li>[ml_taxonomy] Attributes: taxonomy, separator (', '), link (0), justone (0), reverse (0)\n\n<ul>\n<li>taxonomy = taxonomy slug<\/li>\n<li>separator = string to separate each term<\/li>\n<li>link = 1 to link categories to their archive page, 0 for no links<\/li>\n<li>justone = 1 to show just first category, 0 to show all<\/li>\n<li>reverse = 0 default order, 1 reverse display order<\/li>\n<\/ul><\/li>\n<li>[ml_tax] Alias to [ml_taxonomy]<\/li>\n<li>[ml_category] Shortcut for [tax taxonomy=category]<\/li>\n<li>[ml_tag] Shortcut for [tax taxonomy=post_tag]<\/li>\n<li>[ml_date] Attributes: format ('F j, Y')\n\n<ul>\n<li>format = PHP-style date format<\/li>\n<\/ul><\/li>\n<li>[ml_class] Attributes: class\n\n<ul>\n<li>class = classes to display in addition to the traditional post classes<\/li>\n<\/ul><\/li>\n<li>[ml_image] Attributes: from, cfname, class, width (50), height (50), crop, fallback\n\n<ul>\n<li>from (options: thumb, attached, customfield, first)\n\n<ul>\n<li><em>from<\/em> 'thumb' post thumbnail\/featured image <code>[ml_image from=thumb]<\/code><\/li>\n<li><em>from<\/em> 'attached' first attached image <code>[ml_image from=attached]<\/code><\/li>\n<li><em>from<\/em> 'customfield' get from custom field <code>[ml_image from=customfield]<\/code><\/li>\n<li><em>from<\/em> 'first' first image in post <code>[ml_image from=first]<\/code><\/li>\n<\/ul><\/li>\n<li>since 1.1.3, you can pass a comma-separated list to use as fallbacks. <code>[ml_image from=\"thumb,first\"]<\/code><\/li>\n<li>cfname = custom field to use if from=customfield <code>[ml_image from=customfield cfname=thumbnail]<\/code><\/li>\n<li>class = class for image<\/li>\n<li>width = width of image<\/li>\n<li>height = height of image<\/li>\n<li>crop = 1 to crop, 0 to scale (not implemented yet)<\/li>\n<li>fallback = URL of image to use if 'from' doesn't return anything<\/li>\n<li>cache = set to 'clear' to generate new thumbnails. It is not recommended that you leave this option on. <code>[ml_image from=thumb cache=clear]<\/code><\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p>Inside of Item Format, shortcodes can be used without the <code>ml_<\/code> prefix.<\/p>\n\n<h4>Sample Item Formats<\/h4>\n\n<p>Format 1: http:\/\/s.wordpress.org\/extend\/plugins\/mini-loops\/screenshot-2.png<\/p>\n\n<p>(before: <code>&lt;ul&gt;<\/code> after: <code>&lt;\/ul&gt;<\/code>)\n    <li><\/li><\/p>\n\n<p><a href=\"[url]\">[image from=customfield\n    cfname=image width=50 height=50 class=alignright\n    fallback='http:\/\/dummyimage.com\/50'][title]<\/a><br \/>\n    [excerpt wlength=30 space_between=1 after=\"...\" after_link=1]<br \/><br \/>\n    By [author] on [date format=\"n\/j\/y\"]<\/p>\n\n<p><\/p>\n\n<p>Format 2: http:\/\/s.wordpress.org\/extend\/plugins\/mini-loops\/screenshot-3.png<\/p>\n\n<p>(before: <code>&lt;ul&gt;<\/code> after: <code>&lt;\/ul&gt;<\/code>)\n    <li><\/li><\/p>\n\n<p>[date format=\"F j, Y\"]<br \/><a href=\"[url]\">\n    [image from=customfield cfname=image width=180 height=100\n    class=aligncenter fallback='http:\/\/placekitten.com\/180\/100']<\/a>\n    [excerpt length=90 space_between=1 after=\"...\" after_link=1]<\/p>\n\n<p><\/p>\n\n<p>Format 3: http:\/\/s.wordpress.org\/extend\/plugins\/mini-loops\/screenshot-4.png<\/p>\n\n<p>(before: -- after: --)<\/p>\n\n<p><a href=\"[url]\">[title]<br \/>\n    [image from=customfield cfname=image width=140 height=140\n    class=aligncenter fallback='http:\/\/placepuppy.it\/200\/300&amp;text=++woof++']<\/a><\/p>\n\n<h3>Template Tag<\/h3>\n\n<p>use <code>miniloops( $args )<\/code> or <code>get_miniloops( $args )<\/code><\/p>\n\n<p>Like WordPress function, the 'get_' variant will simply return the results.<\/p>\n\n<p>Here are the acceptable arguments and their default values:<\/p>\n\n<pre><code>$args = array(\n        'title' =&gt; __( 'Recent Posts', 'mini-loops' ),\n        'hide_title' =&gt; 0,\n        'title_url' =&gt; '',\n        'number_posts' =&gt; 3,\n        'post_offset' =&gt; 0,\n        'post_type' =&gt; 'post',\n        'post_status' =&gt; 'publish',\n        'order_by' =&gt; 'date',\n        'order' =&gt; 'DESC',\n        'reverse_order' =&gt; 0,\n        'shuffle_order' =&gt; 0,\n        'ignore_sticky' =&gt; 1,\n        'only_sticky' =&gt; 0,\n        'exclude_current' =&gt; 1,\n        'categories' =&gt; '',\n        'tags' =&gt; '',\n        'tax' =&gt; '',\n        'custom_fields' =&gt; '',\n        'exclude' =&gt; '',\n        'before_items' =&gt; '&lt;ul&gt;',\n        'item_format' =&gt; '&lt;li&gt;&lt;a href=\"[url]\"&gt;[title]&lt;\/a&gt;&lt;br \/&gt;[excerpt]&lt;\/li&gt;',\n        'after_items' =&gt; '&lt;\/ul&gt;',\n        );\nget_miniloops( $args );\n<\/code><\/pre>\n\n<h4>Shortcode<\/h4>\n\n<pre><code>[miniloop]\n<\/code><\/pre>\n\n<p>Use with all args listed above\ne.g. <code>[miniloop number_posts=10]<\/code><\/p>\n\n<p><strong>Exception - 'item_format' must be handled differently<\/strong><\/p>\n\n<p>New way (since v0.9):<\/p>\n\n<p>Create a custom field named <code>ml_format<\/code> and save the item format there. Then adjust your <code>[miniloop]<\/code> shortcode\ne.g. <code>[miniloop number_posts=10][ml_format][\/miniloop]<\/code><\/p>\n\n<p>If needed, you can change the custom field. Just pass the name of the new custom field to the <code>[ml_format]<\/code> shortcode\ne.g. <code>[miniloop number_posts=10][ml_format name=\"new_field\"][\/miniloop]<\/code><\/p>\n\n<p>Old way:<\/p>\n\n<p>'item_format' must go into the content of the shortcode, and square brackets must be replaced with curly brackets.\ne.g. <code>[miniloop number_posts=10]{title}by {author}&lt;br \/&gt;[\/miniloop]<\/code><\/p>\n\n<p>Also, if you are using html inside the item_format, you must add this into the HTML editor, else your markup will be rendered, not parsed<\/p>\n\n<h4>Planned<\/h4>\n\n<ul>\n<li>true image cropping for remote images<\/li>\n<\/ul>\n\n<h3>Other Languages<\/h3>\n\n<ul>\n<li>French (Thanks <a href=\"http:\/\/twitter.com\/maoneetag\">@maoneetag<\/a>)<\/li>\n<\/ul>\n\n<h4>Bilingual?<\/h4>\n\n<p>Send your mo\/po files to me at trepmal (at) gmail.com<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Download the zip file and extract the contents.<\/li>\n<li>Upload the 'mini-loops' folder to your plugin directory (default: wp-content\/plugins\/).<\/li>\n<li>Activate the plugin through the 'plugins' page in WP.<\/li>\n<li>See 'Appearance'-&gt;'Widgets' to place it on your sidebar. Set the settings.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='how%20can%20i%20exclude%20categories%3F'><h3>How can I exclude categories?<\/h3><\/dt>\n<dd><p>List its ID as a negative number.<\/p><\/dd>\n<dt id='my%20site%20broke%20after%20customizing%20the%20excerpt.%20what%20happened%3F'><h3>My site broke after customizing the excerpt. What happened?<\/h3><\/dt>\n<dd><p>Did you set the strip_tags attribute to false? (<code>[excerpt strip_tags=0]<\/code>). If tags haven't been stripped, it may have cut off the text before an HTML tag was properly closed, thus breaking the page. Setting strip_tags to false should only be used if you're carefully managing the excerpt's output.<\/p><\/dd>\n<dt id='why%20can%27t%20i%20add%20an%20id%20to%20the%20element%20in%20%27before%20items%27%3F'><h3>Why can't I add an ID to the element in 'Before Items'?<\/h3><\/dt>\n<dd><p>There are limitations on the tag or tag\/attribute combiniations allowed by WordPress. However, these can be overcome with a few lines of code.<\/p>\n\n<p>To allow an additional tag, use this:<\/p>\n\n<pre><code>add_filter( \"admin_init\", \"allowed_tags\" );\nfunction allowed_tags() {\n    global $allowedposttags;\n    $allowedposttags[\"video\"] = array();\n}\n<\/code><\/pre>\n\n<p>To allow additional attributes for any tag, use the following code:<\/p>\n\n<pre><code>add_filter( \"admin_init\", \"allowed_tags\" );\nfunction allowed_tags() {\n    global $allowedposttags;\n    $allowedposttags[\"video\"][\"src\"] = array();\n    $allowedposttags[\"video\"][\"type\"] = array();\n    $allowedposttags[\"video\"][\"poster\"] = array();\n}\n<\/code><\/pre>\n\n<p>If you're using a custom theme, you can add this code the its <code>functions.php<\/code> file. Otherwise, you may want to create your own plugin to hold these modifications.<\/p>\n\n<p>See <a href=\"http:\/\/justintadlock.com\/archives\/2011\/02\/02\/creating-a-custom-functions-plugin-for-end-users\">this post<\/a> for instructions on creating your own plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>Version 1.4.1<\/h4>\n\n<ul>\n<li>Fix: Corrects sloppy shortcode fixes.<\/li>\n<li>Fix: Mini-Mini-Loops widget default settings.<\/li>\n<\/ul>\n\n<h4>Version 1.4<\/h4>\n\n<ul>\n<li>General upkeep<\/li>\n<\/ul>\n\n<h4>Version 1.3.1<\/h4>\n\n<ul>\n<li>Fix: Widget title links<\/li>\n<\/ul>\n\n<h4>Version 1.3<\/h4>\n\n<ul>\n<li>Fix: Widget warnings since 4.3<\/li>\n<li>New: 'crop' parameter for the image tag<\/li>\n<li>New: Allow any shortcodes in item format<\/li>\n<li>New: Automatically clear thumbnail cache on image change. props @om4james<\/li>\n<li>Fix: Use widget_title filter<\/li>\n<\/ul>\n\n<h4>Version 1.2<\/h4>\n\n<ul>\n<li>Fix: undefined index notice if zero posts match query<\/li>\n<li>Fix: markup errors in widget. Corrects save issue regarding order<\/li>\n<li>Fix: reset postdata instead of query<\/li>\n<li>New: BETA - use <code>[ba_archive before='' after='']<\/code> shortcode to insert an author\/taxonomy link. For use with before|after_items fields.<\/li>\n<li>Fix: removed deprecated function for thumbnail creation<\/li>\n<li>New: fallback 'from' options for [image]. [image from=\"thumb,first\"] - If no post thumbnail (featured image), get first image from post<\/li>\n<li>New: [author_avatar] with optional parameters [author_avatar size=92 default='' alt=0]<\/li>\n<li>New: Multisite - Show posts from sister-sites (on same network). REQUIRES ADD ON: https:\/\/gist.github.com\/trepmal\/5073067<\/li>\n<li>New: Ajax-paging - View prev\/next set of posts in widget. REQUIRES ADD ON: https:\/\/gist.github.com\/trepmal\/5073756<\/li>\n<\/ul>\n\n<h4>Version 1.1.2<\/h4>\n\n<ul>\n<li>Fix: imbalanced tags if zero posts match query<\/li>\n<\/ul>\n\n<h4>Version 1.1<\/h4>\n\n<ul>\n<li>New: Changed Before\/After Items inputs to textareas for easier modifying if there is a lot of markup.<\/li>\n<li>New: Filters for the Before\/After Items content. <code>miniloops_{before|after}_items_format<\/code> $query arguments passed to it. See source for more details.<\/li>\n<li>New: \"Mini Mini Loops\" widget. Simplified 'Recent Posts' widget for typical usage - only 3 options.<\/li>\n<li>New: Filter for altering query. <code>miniloops_query<\/code> See source for more details.<\/li>\n<li>New: Post author field.<\/li>\n<li>New: Get posts from current author (if viewing single post or author archive).<\/li>\n<li>New: 'length' 'before' 'after' parameters for [title] and [url] shortcode. Length is number of characters, processed prior to 'before' and 'after'.<\/li>\n<li>New: Maximum age field. Only show posts from last X number of days. Thanks bluey80.<\/li>\n<li>New: Meta value (alpha and numerical) ordering.<\/li>\n<li>New: [post_type] [post_type_archive_link]. Great for Before\/After Item formats.<\/li>\n<li>New: 'Any' option for post type.<\/li>\n<li>New: Alt text support for thumbnails.<\/li>\n<li>Fix: Missed marking some strings for translation.<\/li>\n<li>Fix: Markup mixup for some selected options.<\/li>\n<li>General code clean up and improvements, such as full path used in include().<\/li>\n<\/ul>\n\n<h4>Version 1.0.1<\/h4>\n\n<ul>\n<li>Fix: Multiple tag bug. Only first was being recognized, now correctly accepts all. Thanks Ozias.<\/li>\n<\/ul>\n\n<h4>Version 1.0<\/h4>\n\n<ul>\n<li>New: Exclude sticky posts option.<\/li>\n<li>New: Get posts from first current category (if single).<\/li>\n<\/ul>\n\n<h4>Version 0.9<\/h4>\n\n<ul>\n<li>Fix: Prevents error from being displayed if image can't be resized.<\/li>\n<li>New: Improved support for multisite use.<\/li>\n<li>New: Improved [miniloop] shortcode. Editor tries to hard to \"fix\" the user-provided item format. Now you can save the format in a custom field. See Other Notes.<\/li>\n<\/ul>\n\n<h4>Version 0.8 (2011.10.31)<\/h4>\n\n<ul>\n<li>Added French Translation files. (Thanks <a href=\"http:\/\/twitter.com\/maoneetag\">@maoneetag<\/a>)<\/li>\n<\/ul>\n\n<h4>Version 0.8<\/h4>\n\n<ul>\n<li>New: [ml_field] shortcode, [ml_category] shortcode, [ml_tag] shortcode, [ml_taxonomy] shortcode.<\/li>\n<li>Fix: strip slashes from widget title.<\/li>\n<\/ul>\n\n<h4>Version 0.7<\/h4>\n\n<ul>\n<li>New: more excerpt options (use automated\/custom excerpts rather than trim by length, option to bypass tag\/shortcode stripping). Please report issues.<\/li>\n<li>Fix: stipping slashes for before\/after item during output.<\/li>\n<\/ul>\n\n<h4>Version 0.6<\/h4>\n\n<ul>\n<li>New (sorta): shortcode option <code>[miniloop]<\/code> (see Other Notes for usage). Why \"sorta\"? shortcode has existed the whole time, I only just now added some docs.<\/li>\n<li>New: get posts from current category (if archive).<\/li>\n<li>New: custom taxonomies, if only 1 ID given, and it's negative, treat it like \"NOT IN\".<\/li>\n<li>Fix: added missing echo in instructions.<\/li>\n<li>General code optimization.<\/li>\n<\/ul>\n\n<h4>Version 0.5<\/h4>\n\n<ul>\n<li>New: get only sticky posts.<\/li>\n<li>New: shuffle order.<\/li>\n<li>New: [ml_author_link] shortcode.<\/li>\n<li>New: [ml_comment_count] shortcode.<\/li>\n<li>New: thumbnail cropping for local images.<\/li>\n<li>New: Ready for localization.<\/li>\n<\/ul>\n\n<h4>Version 0.4<\/h4>\n\n<ul>\n<li>New image option: get first attached image (great for galleries!).<\/li>\n<li>Bug fix: broken image if no fallback is set.<\/li>\n<\/ul>\n\n<h4>Version 0.3<\/h4>\n\n<ul>\n<li>Bug fix: post status works now.<\/li>\n<\/ul>\n\n<h4>Version 0.2<\/h4>\n\n<ul>\n<li>Improvements: hide title, link title, exclude current single post options.<\/li>\n<\/ul>\n\n<h4>Version 0.1<\/h4>\n\n<ul>\n<li>Initial release version.<\/li>\n<\/ul>","raw_excerpt":"Get recent posts, posts from categories, and more. Display as widget or with shortcodes and template tags.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/13414","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=13414"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/trepmal"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=13414"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=13414"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=13414"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=13414"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=13414"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=13414"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}