Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save gtaing1/b6e3a58f07bcfa7d84e113ae8297ea4f to your computer and use it in GitHub Desktop.
Save gtaing1/b6e3a58f07bcfa7d84e113ae8297ea4f to your computer and use it in GitHub Desktop.
// file name "search.php"
<?php
remove_action( 'genesis_loop', 'genesis_do_loop' );
add_action( 'genesis_loop', 'sk_do_search_loop' );
/**
* Outputs a custom loop
*
* @global mixed $paged current page number if paginated
* @return void
*/
function sk_do_search_loop() {
// create an array variable with specific post types in your desired order + it adds (s)
$post_types = array( 'post', 'blog ', 'post' );
echo '<div class="search-content">';
foreach ( $post_types as $post_type ) {
// get the search term entered by user
$s = isset( $_GET["s"] ) ? $_GET["s"] : "";
// accepts any wp_query args
$args = (array(
's' => $s,
'post_type' => $post_type,
'posts_per_page' => 5,
'order' => 'ASC',
'orderby' => 'title'
));
echo '<div class="post-type '. $post_type .'"><div class="post-type-heading">'. $post_type . 's</div>';
// remove post info
remove_action( 'genesis_entry_header', 'genesis_post_info', 12 );
// remove post image (from theme settings)
remove_action( 'genesis_entry_content', 'genesis_do_post_image', 8 );
// remove entry content
// remove_action( 'genesis_entry_content', 'genesis_do_post_content' );
// remove post content nav
remove_action( 'genesis_entry_content', 'genesis_do_post_content_nav', 12 );
remove_action( 'genesis_entry_content', 'genesis_do_post_permalink', 14 );
// force content limit
add_filter( 'genesis_pre_get_option_content_archive_limit', 'sk_content_limit' );
// modify the Content Limit read more link
add_filter( 'get_the_content_more_link', 'sp_read_more_link' );
// force excerpts
// add_filter( 'genesis_pre_get_option_content_archive', 'sk_show_excerpts' );
// modify the Excerpt read more link
add_filter( 'excerpt_more', 'new_excerpt_more' );
// modify the length of post excerpts
add_filter( 'excerpt_length', 'sp_excerpt_length' );
// remove entry footer
remove_action( 'genesis_entry_footer', 'genesis_entry_footer_markup_open', 5 );
remove_action( 'genesis_entry_footer', 'genesis_entry_footer_markup_close', 15 );
remove_action( 'genesis_entry_footer', 'genesis_post_meta' );
// remove archive pagination
remove_action( 'genesis_after_endwhile', 'genesis_posts_nav' );
// custom genesis loop with the above query parameters and hooks
genesis_custom_loop( $args );
echo '</div>';
}
echo '</div>'; // .search-content
}
function sk_content_limit() {
return '150'; // number of characters
}
function sp_read_more_link() {
return '... <a class="more-link" href="' . get_permalink() . '">Continue Reading</a>';
}
function sk_show_excerpts() {
return 'excerpts';
}
function new_excerpt_more( $more ) {
return '... <a class="more-link" href="' . get_permalink() . '">Continue Reading</a>';
}
function sp_excerpt_length( $length ) {
return 20; // pull first 20 words
}
genesis();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment