( function( $ ) {
$.fn.blogPosts = function( options ) {
var settings = $.extend( {
api: '',
action: 'blog_posts',
loading_text: 'Loading',
list_type: 'ul',
}, options );
if ( '' === settings.api ) {
return this;
}
function generateList( data ) {
var output = '';
if ( 0 === data.length ) {
return output;
}
data.forEach( function( item ) {
output += '
' + item.title + '';
} );
return $( '<' + settings.list_type + '/>' ).append( output );
}
return this.each( function() {
var $wrapper = $( this );
$.ajax( {
url: settings.api,
type: 'GET',
dataType: 'json',
data: { action: settings.action },
beforeSend: function() {
$wrapper.html( settings.loading_text );
},
complete: function( jqXHR ) {
var response = JSON.parse( jqXHR.responseText );
$wrapper.html( '' );
if ( true === response.success ) {
var listMarkup = generateList( response.data );
$wrapper.append( listMarkup );
}
},
} );
} );
};
$( '.ns-blog-list' ).blogPosts( {
api: ajaxurl,
action: 'blue_planet_nsbl_get_posts',
} );
}( jQuery ) );