wordpress post navigation hacks

Date: 24th October 2007 at 2:34 pm | Filed under: development, scripts, wordpress | Author: Sam Burdge

This article covers using the global parameter $paged and the query $wp_query->max_num_pages; to create custom navigation links for previous and next posts. For some reason wordpress treats posts in the past as "next" and posts in the future as "previous" as explained in this exerpt from the WordPress website:
Read on…

5 Responses to “wordpress post navigation hacks”

  • Comment by gus
    Date: October 30th, 2008 at 1:18 pm

    Thanks for this interesting technique. I finally realized, though, that this works only for “paged” templates, like the index and categories and tag pages. Can you suggest a technique to use on single-post templates?

    I understand that some of this functionality is built in to the next_post_link and previous_post_link tags already, but it is still difficult to make one of them go away if you are using them with nested divs or other complicated bits of CSS — because you don’t have direct access to the anchor tag. Any suggestions for crafting an equivalent “if” statement that will make the previous or next link not show when not needed on a single-post page?

    Also, how much of a performance hit will the $wp_query call cause in the above code?

  • Comment by Sam Burdge
    Date: October 30th, 2008 at 11:34 pm

    Hi Gus

    With the next_post_link / previous_post_link functions you should use the ‘format’ parameter to keep your divs from displaying when the link is not needed. For example:


    <div id="post_nav">
    < ?php next_post_link('%link', 'Next Post'); ?>
    </div>

    will still display the div. While:


    < ?php
    $post_link_format='<div id="post_nav">%link</div>’;
    next_post_link($post_link_format, ‘Next Post’); ?>

    would only show the div when the link is needed.

  • Comment by Philip Arthur Moore
    Date: December 1st, 2008 at 12:17 pm

    Excellent writeup. Another suggestion: if you’re looking for a quick way to fade out elements that are disabled, consider adding a class to your disabled links (i.e. “.disabled”) and then controlling the functionality with jQuery (i.e. jQuery(”a.disabled”).fadeTo(”fast”, .2).removeAttr(”href”);). Thanks a ton.

  • Comment by Rumait
    Date: August 5th, 2009 at 1:51 pm

    where these changes will be made, i mean in which file, cofig.php or single post.php etc

  • Comment by sagive
    Date: August 28th, 2010 at 10:07 am

    do you have a solution that shows page number
    offering a direct navigation to the fifth, sixth page?

Leave a Comment

cookies and arrays in php

Date: 20th October 2007 at 1:27 am | Filed under: development, scripts | Author: Sam Burdge

How to store and retreive arrays using cookies with php:

The first step is to turn the array into a string with each array value seperated by a delimiter. I usually choose an unusual delimiter character such as a vertical bar, as the array values are more likely to contain characters such as comma or slashes. Example:
Read on…

4 Responses to “cookies and arrays in php”

  • Comment by c-received
    Date: November 6th, 2007 at 9:54 pm

    Blend your own recipe….

    $a = array(’bg’=>’red’,'tx’=>’blue’,'lk’=>’green’);
    print_r($a);

    $b = implode(”|”,array(’red’,'blue’,'green’));
    print_r($b);

    $c = explode(”|”,$b);
    print_r($c);

  • Comment by kuberan marimuthu
    Date: September 20th, 2009 at 7:52 am

    this is an expensive solution. PHP cookies, itself supports storing arrays check this link http://www.developertutorials.com/tutorials/php/articlename-050526/page5.html

  • Comment by Steve
    Date: November 1st, 2010 at 8:58 am

    That is soooo inefficient. Use the serialize() function thus:
    setcookie(”myarray”, serialize($myArray), time()+3600);
    and to get data out:
    if(isset($_COOKIE['myarray'])) $myArray=unserialize($_COOKIE['myarray']);

  • Comment by Filip Gorczynski
    Date: November 24th, 2010 at 12:58 pm

    So, what do You think about sth like this:
    <?php
    if(isset($_COOKIE['c'])) {
    $a = unserialize($_COOKIE['c']);
    $a[] = time();
    setcookie(’c', serialize($a), time() + 1000);
    } else {
    setcookie(’c', serialize(array(time())), time() + 1000);
    }

Leave a Comment

Info

Date: 3rd October 2007 at 3:07 am | Filed under: blog | Author: Sam Burdge

I'm Sam Burdge, a web designer and video editor from North London, UK. Currently I'm involved with two companies – 76 Creative, a web design studio for which I do the programming side of things, and Comus Productions, a digital video production company for which I edit programmes and provide technical back-up.

The purpose of this website is to showcase new projects I've been working on and to share my scripts, designs, ideas, and thoughts with the public. I welcome feedback about any posting on the site especially relating to code and development, but please refrain from leaving comments that promote or advertise services, products, events etc (all comments are moderated before they will be publicly visible on the site).

The WordPress theme for this blog, 76 Digital theme, is designed by myself and Alex Newman for 76 Creative. It comes in four colour schemes and is available to download {{post id="76-digital-wordpress-themes" text="here"}}.

If you have any comments or suggestions for the site please send them to:

Enjoy the site!

Leave a Comment

peoples studio

Date: 1st October 2007 at 11:44 pm | Filed under: portfolio | Author: Sam Burdge

Peoples Studio WebsitePeoples Studio Website MapPeoples Studio intro

The Peoples Studio website is built in flash backed up by php and xml scripts. It features an mp3 player, flash maps, contact forms for the different staff members and for showreel requests, and an animated intro. The site is powered by a bespoke CMS, which is built in php and allows the editing of every text-field in the entire site.

Original designs and layouts by Karl Wood for See Hear Speak.

Check out the site: www.peoplesstudio.co.uk

Leave a Comment