<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    Sorry if my post came across as spamming the list for tech support.
    I thought the dilemma might be a common issue for theme developers.<br>
    <br>
    In any case, a custom query filter ended up being an easy solution,
    so if anyone else has this same issue, here's how I solved it:<br>
    <br>
    <pre>function tef_pagination( $limit )</pre>
    <pre>{</pre>
    <pre>&nbsp;&nbsp;&nbsp; if ( is_home() ) {</pre>
    <pre>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $paged = get_query_var('paged') ? get_query_var('paged') : 1;</pre>
    <pre>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $post_per_page = $posts_per_page = get_option('posts_per_page');</pre>
    <pre>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </pre>
    <pre>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // make $posts_on_homepage an odd number</pre>
    <pre>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $posts_on_homepage = ($posts_per_page % 2) ? $posts_per_page : $posts_per_page - 1;</pre>
    <pre>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </pre>
    <pre>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( 1 == $paged ) {</pre>
    <pre>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $limit = "LIMIT 0, $posts_on_homepage";</pre>
    <pre>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</pre>
    <pre>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </pre>
    <pre>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( 2 &lt;= $paged ) {</pre>
    <pre>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $limit = "LIMIT " . ( ($paged - 2) * $posts_per_page + $posts_on_homepage ) . ", $posts_per_page";</pre>
    <pre>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </pre>
    <pre>&nbsp;&nbsp;&nbsp; }</pre>
    <pre>&nbsp;&nbsp;&nbsp; return $limit;&nbsp;&nbsp;&nbsp; </pre>
    <pre>}</pre>
    <pre>add_filter( 'post_limits', 'tef_pagination' );</pre>
    <br>
    <br>
    <br>
    On 4/22/11 1:49 PM, Chip Bennett wrote:
    <blockquote
      cite="mid:BANLkTi=0F6=-2=dhXOAjpu4fT+hx9=CEiQ@mail.gmail.com"
      type="cite">
      <pre wrap="">This one might be a bit off-topic for the Theme-Reviewers mail-list...

You might try the wp-hackers mail-list for this kind of question, or,
perhaps better yet, wordpress.stackexchange.com

Hope you find a solution. Sounds like a tricky problem!

Chip

On Fri, Apr 22, 2011 at 3:34 PM, Philip Walton <a class="moz-txt-link-rfc2396E" href="mailto:philip@philipwalton.com">&lt;philip@philipwalton.com&gt;</a>wrote:

</pre>
      <blockquote type="cite">
        <pre wrap="">I'm making a theme for a client, and I'm coming up with an interesting
issues that I thought I'd run by you all before I do anything too hackish.

Basically I'm making a theme where, according to the design, the home page
should display 9 posts, but every other page should display 10. The 10 page
design shows only the excerpts and looks like stacked blocks: 2 columns,
five high (all excerpts are equal height and width). The reason there's only
9 posts on the home page is because the first post shows the entire content,
and then there's the stacked blocks below that first post. Basically, in
order to make it symmetrical, there needs to be an odd number of posts
displayed on the first page, but an even number on every other page.

So here's my question:

If I say posts_per_page = 9 on the home page, but 10 on every other page,
the pagination messes up. When I go to page 2 I either skip a post or show a
post that was also shown on the home page.

Can anyone think of a way to make page 1 be 1-9 and the subsequent pages
10-19, 20-29, 30-39, etc?

I've come up with nothing so far and I'd rather not have to manually filter
the limit in the MySQL query.


_______________________________________________
theme-reviewers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:theme-reviewers@lists.wordpress.org">theme-reviewers@lists.wordpress.org</a>
<a class="moz-txt-link-freetext" href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a>

</pre>
      </blockquote>
      <pre wrap="">
</pre>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
theme-reviewers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:theme-reviewers@lists.wordpress.org">theme-reviewers@lists.wordpress.org</a>
<a class="moz-txt-link-freetext" href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a>
</pre>
    </blockquote>
  </body>
</html>