• Skip to main content
  • Skip to forum navigation

StudioPress

  • Shop for Themes
  • My StudioPress

Forum navigation

  • Home
  • General Genesis Discussions
  • StudioPress Themes
  • Genesis Blocks
    • Genesis Blocks
    • Genesis Custom Blocks
  • Retired Themes
  • FAQs
  • Forum Rules
  • Internationalization and Translations
  • Forum Bugs and Suggestions
  • Forum Log In

Are You Using The WordPress Block Editor?

Genesis now offers plugins that help you build better sites faster with the WordPress block editor (Gutenberg). Try the feature-rich free versions of each plugin for yourself!

Genesis Blocks Genesis Custom Blocks

Grid Loop Orderby Issues

Welcome!

These forums are for general discussion on WordPress and Genesis. Official support for StudioPress themes is offered exclusively at My StudioPress. Responses in this forum are not guaranteed. Please note that this forum will require a new username, separate from the one used for My.StudioPress.

Log In
Register Lost Password

Community Forums › Forums › Archived Forums › Design Tips and Tricks › Grid Loop Orderby Issues

This topic is: not resolved
  • This topic has 2 replies, 2 voices, and was last updated 10 years, 2 months ago by Au Coeur.
Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • January 16, 2013 at 5:50 pm #12469
    Au Coeur
    Member

    (The site is http://www.nantucket-bucket.com/, but it has a maintenance screen up so you can’t see it…)

    I have added the grid loop and am trying to get posts to order alphabetically by title, but orderby doesn't seem to be working.  Here is the code:

     
    /**
    * Possibly amend the loop.
    *
    * Specify the conditions under which the grid loop should be used.
    *
    * @author Bill Erickson
    * @author Gary Jones
    * @link http://code.garyjones.co.uk/genesis-grid-loop-advanced/
    *
    * @return boolean Return true of doing the grid loop, false if not.
    */
    function child_is_doing_grid_loop() {

    // Amend this conditional to pick where this grid looping occurs.
    // This says to use the grid loop everywhere except single posts,
    // single pages and single attachments.
    return ( ! is_singular() );

    }

    /**
    * Grid Loop Arguments
    *
    * Specify all the desired grid loop and query arguments
    *
    * @author Bill Erickson
    * @author Gary Jones
    * @link http://code.garyjones.co.uk/genesis-grid-loop-advanced/
    *
    * @return array $arguments
    */
    function child_grid_loop_arguments() {

    $grid_args = array(
    'orderby' => 'title',
    'order' => 'ASC',
    'features' => 0,
    'feature_content_limit' => 0,
    'feature_image_size' => 0,
    'feature_image_class' => 'aligncenter post-image',
    'grid_content_limit' => 0,
    'grid_image_size' => 'grid-thumbnail',
    'grid_image_class' => 'aligncenter post-image',
    'more' => __( 'Continue reading →', 'genesis' ),

    );

    $query_args = array(
    'posts_per_page' => 15,
    );

    return array(
    'grid_args' => $grid_args,
    'query_args' => $query_args,
    );
    }

    add_action( 'genesis_before_loop', 'child_prepare_grid_loop' );
    /**
    * Prepare Grid Loop.
    *
    * Swap out the standard loop with the grid and apply classes.
    *
    * @author Gary Jones
    * @author Bill Erickson
    * @link http://code.garyjones.co.uk/genesis-grid-loop-advanced/
    */
    function child_prepare_grid_loop() {

    if ( child_is_doing_grid_loop() ) {
    // Remove the standard loop
    remove_action( 'genesis_loop', 'genesis_do_loop' );

    // Use the prepared grid loop
    add_action( 'genesis_loop', 'child_do_grid_loop' );

    // Add some extra post classes to the grid loop so we can style the columns
    add_filter( 'genesis_grid_loop_post_class', 'child_grid_loop_post_class' );
    }

    }

    add_action( 'pre_get_posts', 'child_grid_query' );
    /**
    * Grid query to get the posts that will appear in the grid.
    *
    * Any changes to the actual query (posts per page, category…) should be here.
    *
    * @author Bill Erickson
    * @author Gary Jones
    * @link http://code.garyjones.co.uk/genesis-grid-loop-advanced/
    *
    * @param WP_Query $query
    */
    function child_grid_query( $query ) {

    // Only apply to main query, if this matches our grid query conditional, and if it isn't in the back-end
    if ( $query->is_main_query() && child_is_doing_grid_loop() && ! is_admin() ) {

    // Get all arguments
    $args = child_grid_loop_arguments();

    // Don't edit below, this does the logic to figure out how many posts on each page
    $posts_per_page = $args['query_args']['posts_per_page'];
    $features = $args['grid_args']['features'];
    $offset = 0;
    $paged = $query->query_vars['paged'];
    if ( 0 == $paged )
    // If first page, add number of features to grid posts, so balance is maintained
    $posts_per_page += $features;
    else
    // Keep the offset maintained from our page 1 adjustment
    $offset = ( $paged - 1 ) * $posts_per_page + $features;

    $query->set( 'posts_per_page', $posts_per_page );
    $query->set( 'offset', $offset );
    }

    }

    /**
    * Prepare the grid loop.
    *
    * Only use grid-specific arguments. All query args should be done in the
    * child_grid_query() function.
    *
    * @author Gary Jones
    * @author Bill Erickson
    * @link http://code.garyjones.co.uk/genesis-grid-loop-advanced/
    *
    * @uses genesis_grid_loop() Requires Genesis 1.5
    *
    * @global WP_Query $wp_query Post query object.
    */
    function child_do_grid_loop() {

    global $wp_query;

    // Grid specific arguments
    $all_args = child_grid_loop_arguments();
    $grid_args = $all_args['grid_args'];

    // Combine with original query
    $args = array_merge( $wp_query->query_vars, $grid_args );

    // Create the Grid Loop
    genesis_grid_loop( $args );

    }

    /**
    * Add some extra body classes to grid posts.
    *
    * Change the $columns value to alter how many columns wide the grid uses.
    *
    * @author Gary Jones
    * @author Bill Erickson
    * @link http://code.garyjones.co.uk/genesis-grid-loop-advanced/
    *
    * @global array $_genesis_loop_args
    * @global integer $loop_counter
    *
    * @param array $grid_classes
    */
    function child_grid_loop_post_class( $grid_classes ) {

    global $_genesis_loop_args, $loop_counter;

    // Alter this number to change the number of columns - used to add class names
    $columns = 3;

    // Be able to convert the number of columns to the class name in Genesis
    $fractions = array( '', 'half', 'third', 'fourth', 'fifth', 'sixth' );

    // Only want extra classes on grid posts, not feature posts
    if ( $loop_counter >= $_genesis_loop_args['features'] ) {
    // Make a note of which column we're in
    $column_number = ( ( $loop_counter - $_genesis_loop_args['features'] ) % $columns ) + 1;

    // Add genesis-grid-column-? class to know how many columns across we are
    $grid_classes[] = sprintf( 'genesis-grid-column-%d', $column_number );

    // Add one-* class to make it correct width
    $grid_classes[] = sprintf( 'one-' . $fractions[$columns - 1], $columns );

    // Add a class to the first column, so we're sure of starting a new row with no padding-left
    if ( 1 == $column_number )
    $grid_classes[] = 'first';
    }

    return $grid_classes;

    }

    Any ideas on why this isn't working?


    Mother. Web & Graphic Designer. Lactation Consultant. Blogging about how it all fits together, most recently from northern Colorado. Visit my blog or my design site.

    January 17, 2013 at 5:34 pm #12749
    Jen Baumann
    Participant

    You probably want to take at this: http://wpsmith.net/2013/genesis/genesis-grid-loop-in-genesis-1-9/. The grid loop has changed with the 1.9 upgrade.

    January 18, 2013 at 2:13 am #12813
    Au Coeur
    Member

    Great, thanks!


    Mother. Web & Graphic Designer. Lactation Consultant. Blogging about how it all fits together, most recently from northern Colorado. Visit my blog or my design site.

  • Author
    Posts
Viewing 3 posts - 1 through 3 (of 3 total)
  • The forum ‘Design Tips and Tricks’ is closed to new topics and replies.

CTA

Ready to get started? Create a site or shop for themes.

Create a site with WP EngineShop for Themes

Footer

StudioPress

© 2023 WPEngine, Inc.

Products
  • Create a Site with WP Engine
  • Shop for Themes
  • Theme Features
  • Get Started
  • Showcase
Company
  • Brand Assets
  • Terms of Service
  • Accptable Usse Policy
  • Privacy Policy
  • Refund Policy
  • Contact Us
Community
  • Find Developers
  • Forums
  • Facebook Group
  • #GenesisWP
  • Showcase
Resources
  • StudioPress Blog
  • Help & Documentation
  • FAQs
  • Code Snippets
  • Affiliates
Connect
  • StudioPress Live
  • StudioPress FM
  • Facebook
  • Twitter
  • Dribbble