Link to home
Start Free TrialLog in
Avatar of the_sleeper
the_sleeperFlag for United States of America

asked on

WordPress Pagination Question: Determining page of a post (i.e. $paged > 1)

Greetings,

In this code snippet the author is dynamically rendering the Title tag based on things like what page the user is on.

I understand (i.e. can run to the codex and figure out) ... most all of it except this little nugget:

if ($paged>1) ....

Apparently nowhere in the theme is a variable $paged being set!?!  

1. Is this some global variable deep in the innards of a WordPress function (cuz, i cant find it)?
2. Is this a variable created by the theme author (cuz, I cant find where $page is set in his code, either)
3. I understand in theory that this code deals with pagination. Correct?

Full code snippet below, please illuminate: I'm green.

sleeper
<?php
		      if (function_exists('is_tag') && is_tag()) {
		         single_tag_title("Tag Archive for &quot;"); echo '&quot; - '; }
		      elseif (is_archive()) {
		         wp_title(''); echo ' Archive - '; }
		      elseif (is_search()) {
		         echo 'Search for &quot;'.wp_specialchars($s).'&quot; - '; }
		      elseif (!(is_404()) && (is_single()) || (is_page())) {
		         wp_title(''); echo ' - '; }
		      elseif (is_404()) {
		         echo 'Not Found - '; }
				 
		      if (is_home()) {
		         bloginfo('name'); echo ' - '; bloginfo('description'); }
		      else {
		          bloginfo('name'); 
			  }
			  
		      if ($paged>1) {
		         echo ' - page '. $paged; }
		   ?>

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of jeremyjared74
jeremyjared74
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of the_sleeper

ASKER

So $paged is a built in WordPress variable? All I can find in the codex is this (under wp_query) :

"paged (int) - number of page. Show the posts that would normally show up just on page X when using the "Older Entries" link.".

thanks
or is $paged simply a parameter of the WP_Query object. If so, how is calling it without something like

$paged = WP_QUery( 'paged ' )

what am i missing?

sleeper

OK, I was wrong. I looked a little deeper and found that was an attempt by a commenter at Perishable Press trying to add the page number to the end of the title. At first it appeared to be a pagination tag, you can find similar here: http://codex.wordpress.org/Conditional_Tags

The article that I found which referenced the tag you have is here:
http://perishablepress.com/press/2008/07/21/how-to-generate-perfect-wordpress-title-tags-without-a-plugin/

The WordPress Trac on the subject (2 years old):
http://core.trac.wordpress.org/ticket/9104
. It appears that it wasn't successful. Maybe it got dropped and deemed useless.



Yeah, I was watched Chris Coyier's video training @ Lynda.com (also just bought the book).
I see the post you were referring to, but I still don't get where that $paged variable is coming from.
I must be dense....

Just scanned the book "Digging into WordPress" and it's here again (and again - with no explanation of this $paged variable) .

Book states:

By using a strategic set of conditional tags in the “header.php” file for your theme, it is possible to address search-engine behavior for virtually all types of pages, thereby enabling you to fine-tune the indexing and crawling of your site’s content.

To see how this is done, consider the following code:

...and there on the first line is a conditional check of the variable $paged..?

<?php if(is_home() && (!$paged || $paged == 1) || is_single()) { ?>
<meta name="googlebot" content="index,archive,follow,noodp" />
<meta name="robots" content="all,index,follow" />
<meta name="msnbot" content="all,index,follow" />
<?php } else { ?>
<meta name="googlebot" content="noindex,noarchive,follow,noodp" />
<meta name="robots" content="noindex,follow" />
<meta name="msnbot" content="noindex,follow" />
<?php } ?>

Open in new window


@jeremyjared74: It is saying if there is Greater than 1 page then...  

I get that part...

@jeremyjared74: ...use the pagination that is built into WordPress.

This is the part I don't get ...are you saying that  the variable $paged is built into WordPress, cuz in the context of these examples, it must be ... so why cant I find anything on it in the codex?

I don't get it...  

sleeper
Did some more digging and discovered that yes - WordPress does use Global Variables and this $paged thingy is one of them. Check this out...

http://codex.wordpress.org/User:CharlesClarkson/Global_Variables

Funny...

here http://codex.wordpress.org/User:CharlesClarkson/Global_Variables you will read this...

Undefined Global Variables

The following variables are global in scope, but do not have a definition here yet. You can help by adding a definition for these global variables.

... and in this list is this (among others)

$page (unknown)
$page_cache (unknown)
$paged (unknown)
$pagenow (unknown)
$pages (unknown)

Oh well. @jeremyjared74, you were right on with the "built in" comment, but it was bugging me that I didn't understand why you were right.

...now I get it. But it would have been nice if the reference book(s) explain that little nugget (or better yet, talked about the Global Variables in some detail)

sleeper
The $paged tag is in use, it was the specific if ($paged>1) that I had a hard time finding documentation on. I don't think this was ever "part of" the WordPress core tags, but more of a hack by a user.
Thanks for all your help, jeremyjared74

stay close... lot more learning to go :)

sleeper