WordPress.org

Ready to get started?Download WordPress

Forums

[Plugin: Co-Authors] conditional statements per # of authors? (1 post)

  1. kaigou
    Member
    Posted 5 years ago #

    So far, the co-authors plugin looks very nifty, and is exactly what I've been looking for. Now I just need to figure out how to style it, and that seems to involve doing a slight round of if/else. Using the example code on the plugin's page, I got this working:

    `if(function_exists('coauthors_posts_links')) :
    $i = new CoAuthorsIterator();
    print $i->count() == 1 ? '' : 'written with: ';
    $i->iterate();
    while($i->iterate()){
    print $i->is_last() ? ' ' : ' & ';
    the_author_posts_link();
    } endif;`

    This is the version to be shown on the author's page, which means there's no need to repeat that Jane is the author when it's her page; I only need to indicate any co-authors. That works fine, but it breaks when I try to allow for situations where there are two or more coauthors.

    The above gets me:

    --post 1--
    written with: Jack
    --post 2--
    written with: & Barbara Jack

    Changing the code around on this line:

    'print $i->is_last() ? ' ' : ' & ';`

    just moves the & (or the , or the whatever) so that now I get it between two names... but as a leading character when it's just one name.

    So I've been trying to come up with a way to do a conditional, and everything keeps breaking on me. Generally, the pseudocode would go like this:

    ' if author count == 1, do nothing.
    if author count == 2 : print 2nd author, end
    else print author2 ', ' author3 ' ', end.'

    So far, fiddling around gets me nothing but errors, but here's one example of the fiddling I've tried:

    ' if(function_exists('coauthors_posts_links')) :
    $i = new CoAuthorsIterator();
    if print $i->count() == 1 ? '' : 'written with: ';
    $i->iterate();

    while($i->iterate()){
    print $i->is_last() ? ' ' : ' ';
    the_author_posts_link();
    } else : $i->iterate();

    while($i->iterate()){
    print $i->is_last() ? ' ' : ' & ';
    the_author_posts_link();
    } endif`

    ...which doesn't work. On both examples on the author-page, it seems to work its way through the if, and skips the else. I'm missing something. Any ideas?

    http://wordpress.org/extend/plugins/co-authors/

Topic Closed

This topic has been closed to new replies.

About this Topic