Last active
December 20, 2015 03:59
-
-
Save braddalton/6067743 to your computer and use it in GitHub Desktop.
This file contains 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
// Add Crystal theme settings to Genesis default theme settings | |
add_filter( 'genesis_theme_settings_defaults', 'crystal_portsecond_settings' ); | |
function crystal_portsecond_settings( $defaults ) { | |
$defaults['crystal_portsecond_content'] = 'excerpts'; | |
return $defaults; | |
} | |
add_action( 'admin_menu', 'crystal_portsecond_settings_init', 25 ); | |
/** | |
* This is a necessary go-between to get our scripts and boxes loaded | |
* on the theme settings page only, and not the rest of the admin | |
*/ | |
function crystal_portsecond_settings_init() { | |
global $_genesis_admin_settings; | |
add_action( 'load-' . $_genesis_admin_settings->pagehook, 'crystal_add_portsecond_settings_box', 20 ); | |
} | |
// Add portsecond Settings box to Genesis Theme Settings | |
function crystal_add_portsecond_settings_box() { | |
global $_genesis_admin_settings; | |
add_meta_box( 'genesis-theme-settings-crystal-portsecond', __( 'Portsecond Page Settings', 'crystal' ), 'crystal_theme_settings_portsecond', $_genesis_admin_settings->pagehook, 'main' ); | |
} | |
function crystal_theme_settings_portsecond() { | |
?> | |
<p><?php _e( "Display which category:", 'genesis' ); ?> | |
<?php wp_dropdown_categories( array( 'selected' => genesis_get_option( 'crystal_portsecond_cat' ), 'name' => GENESIS_SETTINGS_FIELD.'[crystal_portsecond_cat]', 'orderby' => 'Name' , 'hierarchical' => 1, 'show_option_all' => __( "All Categories", 'genesis' ), 'hide_empty' => '0' )); ?></p> | |
<p><?php _e( "Exclude the following Category IDs:", 'genesis' ); ?><br /> | |
<input type="text" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[crystal_portsecond_cat_exclude]" value="<?php echo esc_attr( genesis_get_option( 'crystal_portsecond_cat_exclude' ) ); ?>" size="40" /><br /> | |
<small><strong><?php _e( "Comma separated - 1,2,3 for example", 'genesis' ); ?></strong></small></p> | |
<p><?php _e( 'Number of Posts to Show', 'genesis' ); ?>: | |
<input type="text" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[crystal_portsecond_cat_num]" value="<?php echo esc_attr( genesis_option('crystal_portsecond_cat_num') ); ?>" size="2" /></p> | |
<p><span class="description"><?php _e( '<b>NOTE:</b> The portsecond Page displays the "portsecond Page" image size plus the excerpt or full content as selected below.', 'crystal' ); ?></span></p> | |
<p><?php _e( "Select one of the following:", 'genesis' ); ?> | |
<select name="<?php echo GENESIS_SETTINGS_FIELD; ?>[crystal_portsecond_content]"> | |
<option style="padding-right:10px;" value="full" <?php selected('full', genesis_get_option('crystal_portsecond_content')); ?>><?php _e("Display post content", 'genesis'); ?></option> | |
<option style="padding-right:10px;" value="excerpts" <?php selected('excerpts', genesis_get_option('crystal_portsecond_content')); ?>><?php _e("Display post excerpts", 'genesis'); ?></option> | |
</select></p> | |
<p><label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[crystal_portsecond_content_archive_limit]"><?php _e( 'Limit content to', 'genesis' ); ?></label> <input type="text" name="<?php echo GENESIS_SETTINGS_FIELD; ?>[crystal_portsecond_content_archive_limit]" id="<?php echo GENESIS_SETTINGS_FIELD; ?>[crystal_portsecond_content_archive_limit]" value="<?php echo esc_attr( genesis_option( 'crystal_portsecond_content_archive_limit' ) ); ?>" size="3" /> <label for="<?php echo GENESIS_SETTINGS_FIELD; ?>[crystal_portsecond_content_archive_limit]"><?php _e( 'characters', 'genesis' ); ?></label></p> | |
<p><span class="description"><?php _e( '<b>NOTE:</b> Using this option will limit the text and strip all formatting from the text displayed. To use this option, choose "Display post content" in the select box above.', 'genesis' ); ?></span></p> | |
<?php | |
} |
This file contains 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
/***** Portsecond ********************/ | |
#content .portsecond { | |
width: 210px; | |
margin: 0 15px 20px 15px !important; | |
float: left; | |
overflow: hidden; | |
} | |
.page-template-pageportsecond-php #content .portsecond p { | |
margin: 0; | |
padding: 0; | |
} | |
#content .portsecond .entry-title { | |
font-size: 18px; | |
margin: 10px 0 0 0; | |
line-height: 22px; | |
} | |
#content .portsecond .more-link { | |
background: url(images/btn-more-bg.png) repeat-x top; | |
width: 100px; | |
display: block; | |
padding: 5px 0 5px 0; | |
margin: 10px 0 0 0; | |
text-align: center; | |
text-decoration: none; | |
border-left: 1px solid #D4DBE1; | |
border-right: 1px solid #D4DBE1; | |
text-shadow: #FFFFFF 1px 1px; | |
} | |
#content .portsecond .more-link:hover { | |
background: url(images/btn-more-bg.png) repeat-x 0px -30px; | |
border-left: 1px solid #D0D9E0; | |
border-right: 1px solid #D0D9E0; | |
} | |
#content .portsecond img { | |
float: none; | |
margin: 10px auto 10px; | |
} |
This file contains 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 | |
// Template Name: Portsecond | |
// Force layout to full-width-content | |
add_filter('genesis_pre_get_option_site_layout', 'crystal_portsecond_layout'); | |
function crystal_portsecond_layout($layout) { | |
$layout = 'full-width-content'; | |
return $layout; | |
} | |
// Add .teaser class to every post, except first 2 | |
add_filter('post_class', 'portsecond_post_class'); | |
function portsecond_post_class( $classes ) { | |
$classes[] = 'portsecond'; | |
return $classes; | |
} | |
// Modify length of post excerpts | |
add_filter('excerpt_length', 'custom_excerpt_length'); | |
function custom_excerpt_length($length) { | |
return 15; // pull first 15 words | |
} | |
// Add "View project" link | |
add_filter('the_excerpt', 'child_homepage_excerpt_filter'); | |
function child_homepage_excerpt_filter( $text ) { | |
return sprintf( '%s<a href="%s" class="more-link">%s</a>', $text, get_permalink(), __('View Project', 'crystal') ); | |
} | |
// Remove post info and meta info | |
remove_action('genesis_after_post_content', 'genesis_post_meta'); | |
remove_action('genesis_before_post_content', 'genesis_post_info'); | |
// Move title above post image | |
remove_action('genesis_post_title', 'genesis_do_post_title'); | |
add_action('genesis_post_content', 'genesis_do_post_title', 9); | |
// Remove default content for this Page Template | |
remove_action('genesis_post_content', 'genesis_do_post_image'); | |
remove_action('genesis_post_content', 'genesis_do_post_content'); | |
// Add Featured Image for the portsecond posts in this Page Template | |
add_action('genesis_post_content', 'crystal_portsecond_do_post_image'); | |
function crystal_portsecond_do_post_image() { | |
$img = genesis_get_image( array( 'format' => 'html', 'size' => 'Portsecond Thumbnail', 'attr' => array( 'class' => 'alignnone post-image' ) ) ); | |
printf( '<a href="%s" title="%s">%s</a>', get_permalink(), the_title_attribute('echo=0'), $img ); | |
} | |
// Add Content for the portsecond posts in this Page Template | |
add_action('genesis_post_content', 'crystal_portsecond_do_post_content'); | |
function crystal_portsecond_do_post_content() { | |
if ( genesis_get_option('crystal_portsecond_content') == 'excerpts' ) { | |
the_excerpt(); | |
} else { | |
if ( genesis_get_option('crystal_portsecond_content_archive_limit') ) | |
the_content_limit( (int)genesis_get_option('crystal_portsecond_content_archive_limit'), __('View Project', 'crystal') ); | |
else | |
the_content(__('View Project', 'crystal')); | |
} | |
} | |
// Clear float using genesis_custom_loop() $loop_counter variable | |
// Outputs clearing div after every 4 posts | |
// $loop_counter is incremented after this function is run | |
add_action('genesis_after_post', 'portsecond_after_post'); | |
function portsecond_after_post() { | |
global $loop_counter; | |
if ( $loop_counter == 3 ) { | |
$loop_counter = -1; | |
echo '<div class="clear"></div>'; | |
} | |
} | |
// Remove standard loop | |
remove_action('genesis_loop', 'genesis_do_loop'); | |
// Add custom loop | |
add_action('genesis_loop', 'portsecond_loop'); | |
function portsecond_loop() { | |
$paged = get_query_var('paged') ? get_query_var('paged') : 1; | |
$include = genesis_get_option('crystal_portsecond_cat'); | |
$exclude = genesis_get_option('crystal_portsecond_cat_exclude') ? explode(',', str_replace(' ', '', genesis_get_option('crystal_portsecond_cat_exclude'))) : ''; | |
$cf = genesis_get_custom_field('query_args'); // Easter Egg | |
$args = array('cat' => $include, 'category__not_in' => $exclude, 'showposts' => genesis_get_option('crystal_portsecond_cat_num'), 'paged' => $paged); | |
$query_args = wp_parse_args($cf, $args); | |
genesis_custom_loop( $query_args ); | |
} | |
genesis(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment