Ready to get started?Download WordPress


Media Tags
get_attachments_by_media_tags() twice offset fix (2 posts)

  1. alx359
    Posted 2 years ago #

    This one was tricky.

    I'm doing archive.php pagination using get_attachments_by_media_tags(). For example, let's say I'm calling it this way:

    $media_items  = get_attachments_by_media_tags('media_tags=cars&size=full&offset=10&numberposts=10);

    Let's also say the 'cars' tag has 50 assigned media attachments in the DB.

    What I expect it to happen:
    - $media_items object array to contain the references to 10 attachments, which are between 10-20th of 50 (i.e. offset of 10)

    What really happens:
    - $media_items object array contains the reference to 10 attachments, but they are between 20-30 of 50 (i.e. starts at 2x the offset)

    The offending code and reason for this below.

    media-tags\media_tags.php ~li 344

    // If the calling system doesn't want the whole list.
    //[alx359] offset already sliced the attachment_posts array when calling get_posts() above. No need do again.
    if (($r['offset'] > 0) || ($r['numberposts'] > 0))
    	$attachment_posts = array_slice($attachment_posts, $r['offset'], $r['numberposts']);
    if ($r['numberposts'] > 0)
    	$attachment_posts = array_slice($attachment_posts, 0, $r['numberposts']);
  2. Paul Menard
    Plugin Author

    Posted 2 years ago #

    Thanks. That whole core function needs to be reviewed at some point. It was written way back. Thanks.

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic