Created
November 12, 2012 19:56
-
-
Save davekuhar/4061521 to your computer and use it in GitHub Desktop.
functions.php code to make Genesis themes compatible with LoopBuddy
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| add_theme_support('loop-standard'); | |
| if ( ! function_exists( 'dynamic_loop' ) ) { | |
| function dynamic_loop() { | |
| global $dynamic_loop_handlers; | |
| if ( empty( $dynamic_loop_handlers ) || ! is_array( $dynamic_loop_handlers ) ) | |
| return false; | |
| ksort( $dynamic_loop_handlers ); | |
| foreach ( (array) $dynamic_loop_handlers as $handlers ) { | |
| foreach ( (array) $handlers as $function ) { | |
| if ( is_callable( $function ) && ( false != call_user_func( $function ) ) ) { | |
| return true; | |
| } | |
| } | |
| } | |
| return false; | |
| } | |
| } | |
| if ( ! function_exists( 'register_dynamic_loop_handler' ) ) { | |
| function register_dynamic_loop_handler( $function, $priority = 10 ) { | |
| global $dynamic_loop_handlers; | |
| if ( ! is_numeric( $priority ) ) | |
| $priority = 10; | |
| if ( ! isset( $dynamic_loop_handlers ) || ! is_array( $dynamic_loop_handlers ) ) | |
| $dynamic_loop_handlers = array(); | |
| if ( ! isset( $dynamic_loop_handlers[$priority] ) || ! is_array( $dynamic_loop_handlers[$priority] ) ) | |
| $dynamic_loop_handlers[$priority] = array(); | |
| $dynamic_loop_handlers[$priority][] = $function; | |
| } | |
| } | |
| remove_action('genesis_loop', 'genesis_do_loop'); | |
| add_action('genesis_loop', 'add_loopbuddy_support'); | |
| function add_loopbuddy_support() { | |
| if (!dynamic_loop()) : | |
| if ( is_page_template( 'page_blog.php' ) ) { | |
| $include = genesis_get_option( 'blog_cat' ); | |
| $exclude = genesis_get_option( 'blog_cat_exclude' ) ? explode( ',', str_replace( ' ', '', genesis_get_option( 'blog_cat_exclude' ) ) ) : ''; | |
| $paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1; | |
| /** Easter Egg */ | |
| $query_args = wp_parse_args( | |
| genesis_get_custom_field( 'query_args' ), | |
| array( | |
| 'cat' => $include, | |
| 'category__not_in' => $exclude, | |
| 'showposts' => genesis_get_option( 'blog_cat_num' ), | |
| 'paged' => $paged, | |
| ) | |
| ); | |
| genesis_custom_loop( $query_args ); | |
| } else { | |
| genesis_standard_loop(); | |
| } | |
| endif; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment