WordPress.org

Ready to get started?Download WordPress

Forums

Neater Implementation of Asides (3 posts)

  1. khaled
    Member
    Posted 8 years ago #

    Ok so I'm trying to sort out asides for my new design, and I was looking at the standard code that's shown in the codex (http://codex.wordpress.org/Adding_Asides), and reading through Matt's implementation (http://photomatt.net/2004/05/19/asides/) and I've got to say it really is as ugly as sin. Sooo I scrounged around a bit and found that Joen's Fauna has got what seems to be a very nice implementation of it all, however I don't fully understand every line of code on there, so I was wondering if someone could shed some light on the whole thing.

    Just to review, all I'm trying to achieve is asides for a particular category. Once that category is called it wraps it in another div. Joen's added the eventuality of actually adding a sidenotes feature as well if you want that, however I don't so I'm effectively trying to streamline. So here's the code:

    <?php /* Guess special categories */
    $asides_cat = $wpdb->get_var("SELECT cat_ID FROM $wpdb->categories WHERE category_nicename = 'asides'");

    $sidenotes_cat = $wpdb->get_var("SELECT cat_ID FROM $wpdb->categories WHERE category_nicename = 'sidenotes'");

    query_posts('cat=-'. $sidenotes_cat.'&paged='.$paged);?>

    For my particular case I'd get rid of the sidenotes_cat etc part of the code, however what I'm actually not sure about is what the last part of the code is actually doing. The part that starts query_posts. So any help with explaining that would be cool.

    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    <?php if ( in_category($asides_cat) ) { ?>

    <?php /* Asides box start */ if (!$asides) { ?>
    <div class="box asides"><?php } $asides = true; ?>

    Don't really understand the last part of this code. If (!$asides), isn't that if it's not asides? But then it says $asides=true? I'm a bit confused by this one.

    <?php include (TEMPLATEPATH . '/template-aside.php'); ?>

    <?php } else if (!in_category($sidenotes_cat)) { ?>

    <?php /* Asides box end */ if ($asides && !$asides_end) { ?>

    </div><hr />
    <?php } $asides_end = true; $asides = false; $asides_end = false; ?>

    <?php include (TEMPLATEPATH . '/template-postloop.php'); ?>

    <?php } ?>

    <?php endwhile; ?>

    I'm a bit unsure about why there's $asides_end = true but then goes to false afterwards. Any ideas?

    <?php /* Asides box end */ if ($asides && !$asides_end) { ?></ul></div><hr /><?php } $asides_end = true; $asides = false; $asides_end = false; ?>

    <?php $numposts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish'"); ?>
    <?php if ($numposts > $posts_per_page) { ?>
    <div class="box-blank">
    <div class="align-left"><?php next_posts_link(__('&laquo; Previous Entries')) ?></div>

    <div class="align-right"><?php previous_posts_link(__('Next Entries &raquo;')) ?></div>
    </div>

    <?php } ?>

    Ok last one is I don't understand why there is another asides box end statement here?

  2. Joshua Sigar
    Member
    Posted 8 years ago #

    Don't really understand the last part of this code. If (!$asides), isn't that if it's not asides? But then it says $asides=true? I'm a bit confused by this one.

    It's basically checking if previous post is an aside. If it's not, then we need to insert the opening div. Then we set $aside to true, so that in the next iteration of loop, we know that previous post is an aside and opening div has been inserted so we don't need to insert the opening div again.

    I'm a bit unsure about why there's $asides_end = true but then goes to false afterwards. Any ideas?

    No clue, either. You could delete the first and not break a thing.

    Ok last one is I don't understand why there is another asides box end statement here?

    Well, I have a question. Why is there closing ul tag there? When do we open it?

  3. khaled
    Member
    Posted 8 years ago #

    Thanks for the feedback Joshua, I've kind of solved the issue, although not in the standard way. I've just run an if statement in looking for a particular category, if it sees it then it wraps it in a div, if it doesn't exist then it's the standard loop.

    Nothing really fancy...haven't tested it but I shouldn't think it's a problem....if it becomes one, I'll be back :).

Topic Closed

This topic has been closed to new replies.

About this Topic