Network Posts Extended


The plugin is designed to share posts, pages, and custom post types from across entire network on any given page for any subdomain and the main blog. You may list them in single or double column mode. Add custom css styling to your text, images, whole container and title.

Long Description

The plugin is designed to share posts, pages, and custom post types from across entire network on any given page for any subdomain and the main blog. You may list them in single or double column mode. Add custom css styling to your text, images, whole container and title.

You can specify categories and tags. All posts will be shown in ascending and descending order by date or post ID. You can specify how old (in days) the collected posts may be. Also you can specify how many posts should be displayed from each blog. You can set thumbnails image size and style or disable them.

You may also include or exclude posts, pages, categories, and blogs by using the appropriate arguments. They are all listed at the end of this file.

Screen Shots

  1. Single Column Default
  2. Single Column with Blue Header and Thumbnail Dimmensions size="240,160"
  3. Double Column with Red Header

List of Arguments

= Network Posts Extended Shortcodes and Arguments =

[netsposts include_blog='1,2,5' days='30' taxonomy='news' titles_only='false' show_author='true' thumbnail='true' size='90,90' image_class='alignleft' auto_excerpt='true' excerpt_length='150' show_author='true' paginate='true' list='5']

Shortcodes go in text menu on posts editor pages. You may also add them to your sidebar via the WordPress built in text widget. Also paste under text menu.

Including and/or Excluding pages, posts, categories, and blogs

include_post – list of posts/pages that you want to include (example: include_post='5' or include_post='5,8,153' for multiple posts.

exclude_post – list of posts/pages that you want to exclude (example: exclude_post='5' – exclude_post='5,8,153'

include_blog – list of blogs, with the posts which will be displayed – include_blog='5,8' (default all blogs)

exclude_blog – list of excluded blogs (default none) (works only if include_blogs argument is not present)

filter_excerpt – The plugin will now process and show shortcodes in the excerpt field. Just set filter_excerpt='true' ( Default: false )

taxonomy – list of categories to include in list. Default is all categories. Example: taxonomy='books' or taxonomy='digital-books,product,news' for multiple categories. Use slug of category for the taxonomy name.
taxonomy_type can have 3 values – category, tag, all. Example: taxonomy_type='tag' taxonomy='records'. That way if there is a category and a tag both named 'records' you may choose which to select. To include both just separate with commas. Example: taxonomy_type='tag,category'. You can only select woocommerce taxonomy_type if post_type='product' which is a custom woocomerce post type.
If post_type is 'product' taxonomy_type can be 'product_tag', 'product_cat' or both.

= Miscellaneous show/hide arguments +

days – how old in days the post can be (default 0' – no limit) Example: days='10' will only show the posts/pages which have been created within the last ten days.

titles_only – if true shows titles only (default false) Example: titles_only='true' will only show the titles. Not the image or excerpt.

show_author – if true shows a posts author (default false) Example: show_author='true'

To hide the source area just add the following argument to the shortcode – hide_source='true' will hide all the meta_info like author, date created, etc…
hide_excerpt='true' will hide the text, that is the whole excerpt field.


thumbnail – if true shows thumbnails (default false) Example: thumbnail='true'

size – size of thumbnail (width, height) (default thumbnail) Example: size='50,50' will show a thumbnail which has a size of 50px high and 50px wide.

image_class – CSS class for image (default post–thumbnail) Example: image_class='custom-image-class'


auto_excerpt – if true an excerpt will be taken from post content, if false a post excerpt (shows the short description in the excerpt box. Note you will need to use a plugin to show this box when creating pages instead of posts) will be used (default false).

excerpt_length – the length of excerpt (in characters) (auto_excerpt should be true)(default 400') Example: excerpt_length='500' will show the first 500 characters.

manual_excerp_length – You can set the length of the manual excerpt. For example if someone has 500 words in the manual excerpt field it may be trimmed down to 400 like so: manual_excerpt_length='400' (defaul 9999)

Listing Designs

post_type – type of posts (default post) Example: post_type='page' will show pages not posts in the list. To show posts either don't include this argument (since posts are default) or use post_type='post'. Now works with custom post types. So you may add post_type='mycustomposttype'.

full_text – full text instead of excerpt (default false) Example: full_text='true' will show entire text in content field in list.

Showing Date

date_format – format of the post date (default n/j/Y). This will show January 2 1963 for example. If you would like to show the date first just use: date_format='j/n/Y'.

Custom HTML

wrap_start, wrap_end – you can wrap the posts for example: wrap_start='<div style="font–weight:bold;vertical–align:middle;" class="myclass">' wrap_end='</div>'

wrap_title_start,wrap_title_end – wrap_image_start,wrap_image_end – wrap_text_start,wrap_text_end wrap_excerpt_container_start='',wrap_excerpt_container_end='' . Use the same way as wrap_start,wrap_end above. But will only wrap given argument.

page_title_style – style for the page title (default: none) Example: page_title_style='italic' will make the title italic. For bold you may use: page_title_style='bold' for italic and bold use: page_title_style='italic,bold'

Miscellaneous List Arguments – Pagination Links and Order Post/Page by Properties

end_size – how many numbers on either the start and the end list edges (used for pagination) Example: end_size='3' will show the first and last three pages as links in numerical form.

mid_size – how many numbers to either side of current page, but not including current page (used for pagination)

order_by – Sort in ascending (default value) and descending order via the following arguments – Ascending: order_post_by='alphabetical_order' order_post_by='date_order' order_post_by='page_order' and descending: order_post_by='alphabetical_order desc' order_post_by='date_order desc' order_post_by='page_order desc' (note: descending must be surrounded by single or double quotes because of the empty space after page_order

Pagination – When list is to have multiple pages

paginate – if true the result will be paginated (default false) Example: paginate='true' will break the list in to multiple pages by the list argument.

list – how many posts per page (default 10) Example: list='20' will show the last 20 posts or pages. If paginate='true' is used above then will break the list in to pages showing 20 posts or pages on each page.

prev_next – Whether to include the previous and next links in the list or not (used for pagination. Default: true)

prev – the previous page link text. Works only if prev_next argument is set to true. (Default: « Previous)

next – The next page text. Works only if prev_next argument is set to true. Example: next='New Posts' will replace the default – Next – with – New Posts. (Default: Next »)

random – Set to true to show posts randomly. To show an x amount of posts randomly make sure the list argument is set to the amount you want. (Default: set to false)

Custom Arguments


title – custom title (default: none) Example: title='Joe's Favorite Bicycles'

title_color – Color of the title text. Example: title_color='red' or title='color:#ff0000' both will give you a color of red. (Default black)

title_length – Cuts off the title at X amount of characters so won't make long wrap around which looks ugly. The length is in characters including spaces and symbols (Default 999)

include_link_title – This will now make all titles clickable (default false). If you want the titles to also link to the post or page set this argument to true. Example: include_link_title='true'

exclude_link_title – This will exclude certain posts/pages from the title being clickable. For example if you don't want the title to link to posts 8,45,47 you would use: exclude_link_title_posts='8,45,47'

Custom Column Designs

column – number of columns (default: 1)

column_width – Width of column in pixels. Example column_width='250'. (Default: 200)

post_height – Sets the default height for all posts. Recommended for 2 column mode. For example if manual_excerpt_length='400' or excerpt_length='400' and you want posts with less of an excerpt to have same dimensions use this feature. post_height='300' will give a standard height of 300 pixels. So if post has less characters of text will still keep square shape so titles line up nicely.

meta_info – Example: meta_info='false' (Default 'true')

meta_length – Example: meta_length='75%' (Default 100%)

menu_name – name of the menu (should be created in Appearance > Menu)(default: The one created in Appearance > Menu)

menu_class – CSS class for the menu. Example menu_class='menu-class'. Separate multiple classes with commas.

container_class – the CSS class that is applied to the menu container

use_shortcode_in_excerpt – If set to true any shortcodes that appear in the excerpt will be processed. Default: false. Note: You must activate the ability to have your site be able to process shortcodes in excerpt field.

show_categories – If set to true will also include a link to the category archive page. show_categories='true' default is false.

Added ability to call all categories that contain certain keyword or part as in the following example:If you type 'test-%' it will find test-1, test-2, test-3 etc.I.e. it will find categories that starts with 'test-'. if you type '%test' it will find categories that ends with 'test' word.

link_open_new_window='true' (default false) for all posts and link_open_new_window='1,2,3,4,5' for posts with given ids.

Using Custom Image Sizes:

Under settings > Network Posts Ext menu you will see a box to add a custom image size. You may name it anything you like and use the default alias name or your own. Wants created you must include the following in your shortcode:thumbnail='true' size='Name of Alias'. For example if what is listed in the alias box is 600×400 then it would be size='600×400' so your thumbnails will have a size of 600px wide and 400px high. You may change the diplayed size of these images using custom css.For example you may create a class called img-size-300×200 and change the displayed image size thus: .img-size-300×200 { height:300px;width:200px; }. Then add this to the shortcode: image_class='img-size-300×200'. To use default thumbnail size use size='parent theme' or to use any of the parent theme’s default sizes use size='h,w'

Advanced Custom Fields – To add the field with the meta info just use the argument include_acf_fields=’name-of-custom-field-slug’. It will appear with the label name followed by the input (default false). If you’d like to include the label just add the argument hide_acf_label='false'.
Note: All fields are surrounded by <span></span> tags. If you’d like to change them you will have to add a bit of coding. Here’s some examples.

/* Beginning Explanation of Code

add_filter(‘netsposts_get_acf_html’, ‘print_acf_html’, 10, 2);

function print_acf_html($fields, $post){
$html = ”;
foreach($fields as $field){
$html .= ‘

‘ . $field[‘label’] . ‘: ‘ . $field[‘value’] . ‘

return $html;

or even

function print_acf_html($fields, $post){
$html = ‘

$html = ‘

$html .= $fields[‘some_field’][‘label’];
$html .= ‘

$html = ‘

$html .= $fields[‘some_field’][‘value’];
$html .= ‘

$html .= ‘

return $html;


End explanation of code */

Note: Replace some_field with the actual field name. Don’t replace anything else.

Network Activated: Now you can network activate and have full control in the admin menu under settings which site owners can resize images. You may have them resize images just on their own site or globally or not allow them to resize images at all. Works great sold as a premium feature.

For a complete tutorial please visit:



You may install the plugin using one of the three following methods:
1. Unzip file and using an ftp program upload it to the wp-content/plugins/ directory then activate in plugins page.
2. Using the search field in the admin plugins area type in &#34network posts extended" (without quotes) then install from there.
3. Upload zip file through the standard plugins menu.


Q) Should I network activate the plugin?
A) You may network activate the plugin so it is available on all sites or activate individually. When network activated there will be a new menu for the plugin under settings > Network Posts Thumbnails which will allow you to give certain permissions to blog owners when it comes to the thumbnail sizes. You may allow to create new sizes just on their blog or across the entire network which will affect everybody. I recommend only to allow it for their blog only. This allows you to also include it as a custom feature if you want to charge for this capability.

Q) May I only include an x amount of posts that I choose?
A) Yes, use include_post= and put in your posts in comma separated format surrounded by double quotes.
Example include_post='5,78,896'.

Q) My title is too long and looks ugly, anyway I can shorten it?
A) You may shorten it using the argument title_length='10' will rounded it off to the last complete word before it reaches 10 characters.

Q) I would like to just show an X amount of random posts on the home page. Is it possible?
A) Use the following arguments: random='true' and list='10' will show ten different posts randomly whenever the page is loaded. If you add list="15" it will show fifteen different posts randomly.

Q) May I order my posts in specific order by date or title?
A) Yes you may give specific ordering of your posts or pages via alphabetical order (by title), by date or page or post ID specific order.

Q) Does this plugin list pages from woocommerce?
A) Yes it now does as of version 0.1.4. You may list via page/post id or via taxonomy='custom woocommerce category'. Woocommerce default directory/taxonomy is product show you would just use the argument taxonomy='Product' which is the title of the directory. (Not case sensitive)
Note: Also works with Tips and Tricks eStore plugin.

Q) Will this plugin also include the prices from the products I create with the Woocommerce and eStore plugins?
A) Yes it will including the following argument: include_price='woocommerce' or include_price='estore'. If for some reason you have both plugins installed you would use include_price='estore|woocommerce' if you want to list them both.

Q) When I use the following argument wrap_start="<div style="color:blue;">" and wrap_end="</div>" the text does not change color.
A) That is because since double quotes are used after the = sign they must be changed to single quotes and use double quotes in the html. For example you would have to have wrap_start='<div style="color:blue;">'. Notice the double quotes in the html? Do not forget to change the closing argument to wrap_end='</div>'

Q) Does this plugin work with custom post types. That is post_type='custom-post-type'.
A) Yes it now works with custom post types.

Q) Can I show full post from any blog on any site?
A) Yes you can by using the following argument full_text='true'

Q) I have custom image sizes I have already created and uploaded. How can I use them with your plugin without having to go through the process of re-creating image sizes with your plugin?
A) You can use them directly as a featured image or you can install the plugin and put in the link directly to the images. This plugin will automatically switch to the one listed here. Don't forget to change size='H,W' to the dimensions of the featured image.

Q) The default layout is quite ugly. How do I improve it?
A) Using css I have made this plugin very flexible. It now contains two default layouts. Their names are "default" and "inline". You may choose either one by using use_layout='default' or use_layout='inline'.

Q) Can I use shortcode attributes in dynamically created url?
A) Yes you may now use the shortcode attributes in a url. Example: http://localhost/wordpress/home-page/?column=infinite&include_blog=1,2,3&taxonomy=wordpress-develop,second-posts

Q) Where do I put the shortcodes?
A) Paste the shortcode on any page, post or custom post type using the Text not the Visual area of the posts editor field.

Q) How do I use this plugin in widgets?
A) Use the default WordPress text widget and post the code in there under the Text not Visual code area so it will not mess with the shortcode. This widget is now automatically shortcode ready. No need for a special widget or plugin to activate shortcodes in widgets.

Q) Is it possible to include custom post type meta information?
A) As long as you use the Advanced Custom Fields Plugin it will be possible to do so. Read the readme.txt file for arguments to add to the shortcode.


Great plugin & support

As others have pointed out, I just wanted to reiterate how useful this plugin is. My site admin requested to see all posts in the multisite environment & I was about to hack something together when I realised this module does exactly what I need. The plugin author provided fast & excellent support.

Amazing Plugin and Even Better Support

Network Posts Extended is awesome and the support from John is even better. When I switched my media from my local hard drive on my server to Amazon S3, the featured images no longer showed, so John made an update to fix it in less than a day. Can’t recommend this plugin highly enough.

Finally got the look I wanted

I finally found a plugin that gives me the look I wanted. As popular as multi-site is, it is amazing that this seems to be the only plugin that does a decent job of displaying posts from across the network. Much more flexible than the WPMU plugin.

Much needed!

A much needed plugin! (I still can’t believe that this isn´t integrated in WP Networks by default).
The versatility of the plugin is just amazing! With the options of the shortcodes+CSS plugin, I managed to replicate the default ‘Home Archives’ of my themes only using this plugins shortcode in a Page.

Fantastic plugin!

This is the best plugin I have found to date when it comes to aggregating multisite data. It is very well documented, the plugin author is extremely proactive on the support forum, he even added an enhancement request I made for adapting url parameters, and he turned that request around in 2 days! The shortcode is straight-forward and has a low thresh hold for entry. If you are looking to aggregate your multisite data, look no further.

*for the record, this is the first plugin review I have written; it works so well that I felt compelled to do so.


Read all 12 reviews

Contributors & Developers

“Network Posts Extended” is open source software. The following people have contributed to this plugin.




Added the following functionality:
Modifications list:
1) date_format is made to load blog’s date format if date_format=’settings’
2) Every date is automatically localized
3) The plugin loads active theme’s default thumbnail size if size=”parent theme”
4) Created a setting whether to load plugin styles or not.
5) Added a checkbox in the admin remove all styling from the css file.
And there is one additional thing. “size” attribute value can be any registered size and not even one that is created with our plugin. size=’h,w’


Fixed function which ACF changed on update so to be compatible again.


Added the ability to output numerical and simple text based strings from the Advanced Custom Fields plugin. Important: Won’t do complicated fields because the output will just be converted to a long text string which will look like gibberish.


Put back the class for the read more link. Verified stability with WordPress 4.9.8


When title was set to contain a link it lost it's class so added a new class called "netsposts-posttitle-link" to make the customization via css easier. So when title is not linkable the class is "netsposts-posttitle" and when it is a link the class is "netsposts-posttitle-link".


Changed some css by changing the following html code: id="block-wrapper&#34 to class="netsposts-block-wrapper" and id="netsposts-paginate" to class="netsposts-paginate" and id="netsposts-menu" to class="netsposts-menu"


Added two new arguments - hide_source='true' hide_excerpt='true'. Default false (will automatically show hide_source and hide_excerpt unless set to 'true').


Added the ability to create custom fields and order your posts as such. For example if you create a custom post type to show upcoming events you can list them in either ASC (ascending) or DESC (descending) order. Plus you can show past events or events that are occurring today. Plus changed the link structure from using post ID to using permalinks.


Fixed bug where post_height='' stopped working.


Added the ability to keep original image quality in plugin admin menu. Keep original image is defaulted to on and by-passes WordPress automatically choosing compressed version of image. Check the box to turn this feature off.


Added ability to open links in new window.


Updated way WordPress runs shortcode to keep up with security standards plus fixing taxonomy error. Now compatible with WordPress version 4.8.3. Plus added to be able to call taxonomies by keyword using partial category/tag name.


Fixed error in show_categories php code which was showing parse error in error_log file.


Fixed use_shortcode_in_excerpt function now works again. Added the argument show_categories so if you would like to include a link to the category page you may add show_categories='true'


Fixed syntax error created in some environments.


Corrected the ability to process shorcodes in the excerpt field. Now must use: use_shortcode_in_excerpt='true'. You must use a plugin like <a href=''>Code Snippets</a> or add the following code to your functions.php file which allows you to process shortcodes in the excerpt box of posts and if activated pages also. <?php add_filter('the_excerpt', 'do_shortcode'); ?> without the backticks. The above plugin will not want you to include the <?php and ?>. Just enter it as so: add_filter('the_excerpt', 'do_shortcode');. If your functions.php file has an opening php tag just insert the latter snippet also.


Added the ability to process shortcodes in the excerpt field. Just set filter_excerpt='true'. That is if you have a shortcode in the posts excerpt field in the admin page or have auto_excerpt='true' it will process all shortcodes.


Added ability to use shortcodes in dynamic url.


Fixed css bug


Fixed Call to Function errors.


Fixed use_layout='inline' so it looks like it was supposed to. Has Title, meta-info and content floating to the right of thumbnail.


Fixed bug where content was flowing outside of content area when listed on a page.
I have added the following arguments:
* full_text='true' will show entire blog content (default – false)
* use_layout='' (default or inline – the default is set to use_layout='default'). When set to inline all meta data and content will be aligned to the right of the image.
* align_thumbnail='' (default is left. May now choose the image to align to the right of the text if use_layout='inline' is chosen.
* wrap_excerpt_container_start='CSS Code Here or anything else for that matter' wrap_excerpt_container_end=''. So if you want to add a class to the excerpt/content area you may do so by using wrap_excerpt_container_start='<div class='custom-class'>' wrap_excerpt_container_end='</div>'.


Fixed bug where it stopped working with posty_type='page' and now works with custom post types. So if you make a post type called listing you may now add, post_type='listing'.


Fixed incompatibility problem between browsers. Now tested and works with Firefox, Chrome and Microsoft Edge. Should work with Safari and Opra browsers also.


Added the ability to resize images and use them as the default thumbnail.


This plugin now will show prices for commerce sites using the Woocommerce or WP eStore plugins.


The plugin can now list post and pages from any subomain/blog including woocommerce and eStore. No longer syntax error created.


Removed below custom class and added checkbox to remove read more link on excerpts.
Added text box to remove read more link individually by inserting the title of post/page.
Moved the location of the plugin from the tools menu to inside the settings menu for less confusion.
It is now named 'Network Posts Ext' with the quotes of course.


Added custom class to plugins net_posts_extended.css file .netsposts-read-more-link
This way you can remove the read more links from the excerpts by using the following attribute:
a.netsposts-read-more-link { visibility: hidden; } or a.netsposts-read-more-link { display: none; }


Added ability to list posts in specific order by date, title or page (pertains to post_type='page' only).
Arguments now work with paginate='false' random='true'
Fixed call to function error


Added two more arguments.
manual_excerpt_length=' ' plus post_height=' '


Added the function to be able to use your own custom classes in tools area.
Plus added the following arguments:
column_width (default (px): 200)
title_color (default: black)
text_color – color of text. Examples text_color='red' or text_color='#ff0000'. Both will have the texts color turn red.
meta_info – Default true


wrap_title_start,wrap_title_end – wrap_image_start,wrap_image_end – wrap_text_start,wrap_text_end.
meta_width – Same as title length except in percentage to shorten long meta data.
Added the ability to show posts or pages randomly using the following argument: random='true'
The list= argument works with pagination= true or false (default: false)


Added the ability to have custom thumbnail sizes created on image upload.
You will be able to have image sizes that are also rectangular for better matching on listing your pages. For example an image with a width of 300px and height of 200px.