<?php /** * Custom Loop Template for use with Genesis and Genesis Children. * * https://lifterlms.com/docs/make-lifterlms-loops-friendly-genesis-child-themes/ * * You can add this recipe to your site by creating a custom plugin * or using the Code Snippets plugin available for free in the WordPress repository. * Read this companion documentation for step-by-step directions on either method. * https://lifterlms.com/docs/adding-custom-code/ */ if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Remove default genesis loop, we're going to replace it with LifterLMS */ remove_action( 'genesis_loop', 'genesis_do_loop' ); /** * Get the genesis layout for the LifterLMS Catalog we're on * @param string $layout default layout setting * @return string */ function llms_genesis_loop_layout( $layout ) { global $wp; if ( isset( $wp->query_vars ) && isset( $wp->query_vars['post_type'] ) ) { switch ( $wp->query_vars['post_type'] ) { case 'llms_membership': $id = llms_get_page_id( 'memberships' ); break; case 'course'; $id = llms_get_page_id( 'courses' ); break; } if ( $id ) { $layout = get_post_meta( $id, '_genesis_layout', true ); } } return $layout; } add_filter( 'genesis_pre_get_option_site_layout', 'llms_genesis_loop_layout' ); /** * Outplt LifterLMS content wrappers * @return void */ function llms_genesis_before_loop() { do_action( 'lifterlms_before_main_content' ); if ( apply_filters( 'lifterlms_show_page_title', true ) ) : echo '<h1 class="page-title">'; lifterlms_page_title(); echo '</h1>'; endif; do_action( 'lifterlms_archive_description' ); } add_action( 'genesis_before_loop', 'llms_genesis_before_loop' ); /** * Do the custom LifterLMS Loop * @return void */ function llms_genesis_loop() { if ( have_posts() ) { /** * lifterlms_before_loop hook * @hooked lifterlms_loop_start - 10 */ do_action( 'lifterlms_before_loop' ); while ( have_posts() ) : 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' ); llms_get_template_part( 'loop/pagination' ); } else { llms_get_template( 'loop/none-found.php' ); } } add_action( 'genesis_loop', 'llms_genesis_loop' ); /** * Close LifterLMS content Wrappers * @return void */ function llms_genesis_after_loop() { do_action( 'lifterlms_after_main_content' ); } add_action( 'genesis_after_loop', 'llms_genesis_after_loop' ); genesis();