LLMS_Shortcodes::memberships( array $atts )

Memberships Shortcode


Description Description

Used for shortcode [lifterlms_memberships].


Top ↑

Parameters Parameters

$atts

(array) (Required) Associative array of shortcode attributes.


Top ↑

Return Return

(string)


Top ↑

Source Source

File: includes/shortcodes/class.llms.shortcodes.php

	 */
	public static function memberships( $atts ) {

		// Enqueue match height so the loop isn't all messed up visually.
		self::enqueue_script( 'llms-jquery-matchheight' );

		if ( isset( $atts['category'] ) ) {
			$tax = array(
				array(
					'taxonomy' => 'membership_cat',
					'field'    => 'slug',
					'terms'    => $atts['category'],
				),
			);
		}

		$args = array(
			'paged'          => is_front_page() ? get_query_var( 'page' ) : get_query_var( 'paged' ),
			'post_type'      => 'llms_membership',
			'post_status'    => 'publish',
			'posts_per_page' => isset( $atts['posts_per_page'] ) ? $atts['posts_per_page'] : -1,
			'order'          => isset( $atts['order'] ) ? $atts['order'] : 'ASC',
			'orderby'        => isset( $atts['orderby'] ) ? $atts['orderby'] : 'title',
			'tax_query'      => isset( $tax ) ? $tax : '',
		);

		if ( isset( $atts['id'] ) ) {

			$args['p'] = $atts['id'];

		}

		$query = new WP_Query( $args );

		ob_start();

		if ( $query->have_posts() ) :

			/**
			 * lifterlms_before_loop hook
			 *
			 * @hooked lifterlms_loop_start - 10
			 */
			do_action( 'lifterlms_before_loop' );

			while ( $query->have_posts() ) :
				$query->the_post();

				llms_get_template_part( 'loop/content', get_post_type() );

			endwhile;

			/**
			 * lifterlms_before_loop hook
			 *
			 * @hooked lifterlms_loop_end - 10
			 */
			do_action( 'lifterlms_after_loop' );

			echo '<nav class="llms-pagination">';
			echo paginate_links(
				array(
					'base'      => str_replace( 999999, '%#%', esc_url( get_pagenum_link( 999999 ) ) ),
					'format'    => '?page=%#%',
					'total'     => $query->max_num_pages,
					'current'   => max( 1, $args['paged'] ),
					'prev_next' => true,
					'prev_text' => '«' . __( 'Previous', 'lifterlms' ),
					'next_text' => __( 'Next', 'lifterlms' ) . '»',
					'type'      => 'list',
				)
			);
			echo '</nav>';

		else :

			llms_get_template( 'loop/none-found.php' );

		endif;

		wp_reset_postdata();

		return ob_get_clean();



Top ↑

Changelog Changelog

Changelog
Version Description
4.12.0 Handle pagination when the shortcode is used on the static front page.
3.0.2
1.4.4 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.