ID; endwhile; // Get arlima slug added to this page in a custom field $arlima_slug = get_post_meta($page_id, 'arlima', true); if( !$arlima_slug ) { echo '

'.__('No list slug is defined. Please add custom field "arlima" to this page with the slug name of the list that you want to display', 'arlima').'

'; } else { // Load the arlima list $version = arlima_is_requesting_preview() ? 'preview' : ''; $list = Arlima_ListFactory::load($arlima_slug, $version); // List does not exist if( !$list->exists ) { echo '

'.__('It does not exist any arlima list with the slug', 'arlima').' "'.$arlima_slug.'"

'; } else { // Show a link that takes logged in users directly to wp-admin // where current list can be edited arlima_edit_link($list); // Initiate template renderer that's responsible of // rendering current arlima list. $arlima_renderer = new Arlima_ListTemplateRenderer($list); // Callback for article image $arlima_renderer->setGetImageCallback(function($article) { $has_img = !empty($article['image_options']) && !empty( $article['image_options']['attach_id'] ); $has_giant_tmpl = !empty($article['options']['template']) && $article['options']['template'] == 'giant'; if( $has_img && !$has_giant_tmpl ) { $attach_meta = wp_get_attachment_metadata($article['image_options']['attach_id']); if( !$attach_meta ) return false; $article_width = empty($article['parent']) || $article['parent'] == -1 ? TMPL_ARTICLE_WIDTH : round(TMPL_ARTICLE_WIDTH * 0.5); switch($article['image_options']['size']) { case 'half': $width = round($article_width * 0.5); $size = array($width, round( $attach_meta['height'] * ($width / $attach_meta['width']))); break; case 'third': $width = round($article_width * 0.33); $size = array($width, round( $attach_meta['height'] * ($width / $attach_meta['width']))); break; case 'quarter': $width = round($article_width * 0.25); $size = array($width, round( $attach_meta['height'] * ($width / $attach_meta['width']))); break; default: $size = array($article_width, round( $attach_meta['height'] * ($article_width / $attach_meta['width']))); break; } $img_class = $article['image_options']['size'].' '.$article['image_options']['alignment']; $img_alt = htmlspecialchars( $article['title'] ); $attach_url = wp_get_attachment_url( $article['image_options']['attach_id'] ); $resized_img = image_resize( WP_CONTENT_DIR .'/uploads/'. $attach_meta['file'], $size[0], null, false, null, null, 98); if ( !is_wp_error($resized_img) ) { $img_url = dirname($attach_url) . '/' . basename($resized_img); } else { $img_url = $attach_url; } return sprintf('%s', $img_url, $size[0], $img_alt, $img_class); } return false; }); // Callback used when a future posts comes up in the list, will only fire when looking at // a preview version of the list $arlima_renderer->setFuturePostCallback(function($post, $article, $list) { ?>
Hey dude, this post will not show up in the list until it's published, unless you're not previewing the list that is...
setTextModifierCallback(function($article, $is_post, $post) { $article['text'] = apply_filters('the_arlima_content', $article['text']); return arlima_link_entrywords(trim($article['text']), $article['url']); }); // Callback for related posts $arlima_renderer->setRelatedPostsCallback(function($article, $is_post) { return $is_post ? arlima_related_posts('inline', null, false) : ''; }); // Callback taking place before every article is rendered $arlima_renderer->setBeforeArticleCallback(function($article_counter, $article) { // ... }); // Callback taking place after every article is rendered $arlima_renderer->setAfterArticleCallback(function($article_counter, $article) { // ... }); // The list doesn't have any articles :( if( !$arlima_renderer->havePosts() ) { echo '

'.__('Please feed me some articles, I\'m hungry', 'arlima').'

'; } // Let the magic happen... else { $arlima_renderer->renderList(); } } } ?>