WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I think I just coded myself into a corner. I am setting up a page with an image. The image is an imagemap with lots of links. When you click on the link, it opens a post in a colorbox. So far I have managed to get this part working using a combination of the Lightbox Plus and Post Template plugins.

Unfortunately this involves assigning each post to a specific template. The template simply removes the title/image/menu. But this permanently alters the post display. I need to post to still show the full header if it is accessed through the normal menu or from a Google search.

How can I display a post differently based on how it is accessed? OR - how can I insert just the post content into the colorbox window without using a custom page or post template?

share|improve this question
Can you please add relevant code to your question. – s_ha_dum Mar 18 '13 at 19:48
I really don't have any yet. I'm using two plugins, and the two pages I added are kinda what I'm trying to avoid altogether. – donblanco Mar 18 '13 at 21:25
up vote 2 down vote accepted

A potential solution would be to first get rid of the Post Template plugin and just use the default single.php to render single post views.

Then add a get variable onto the end of your imagemap links, so they're something like domain.com/post-name/?view=lightbox

Then filter the single_template to load your lightbox view template when the GET var is detected:

function wpa_lightbox_single( $template ){
    if( isset( $_GET['view'] ) )
        $template = locate_template( 'lightbox-view.php' );

    return $template;
add_filter( 'single_template', 'wpa_lightbox_single' );
share|improve this answer
oh man - I'm going to have to brush up on my PHP aren't I? sigh – donblanco Mar 18 '13 at 21:16
Rats - tried to edit and went over the 5 minute restriction. Meant to add: "Oh well, it was inevitable. But seriously, Milo - thank you. This looks promising. The Lightbox Plus Colorbox plugin requires adding a class variable to the link. Would this potentially bypass that? Also, would this function be something that I added directly to single.php?" – donblanco Mar 18 '13 at 21:23
So I added the function code into functions.php and this didn't seem to work. Should the code go into single.php instead? – donblanco Mar 18 '13 at 21:40
the function goes in functions.php. your links will still need the lightbox class added as well as the appended view GET variable. You can test if it's working on its own by viewing a single post, then adding ?view=lightbox directly to the URL in your browser. You'll also need to change lightbox-view.php to the name of the template you want to load in the lightbox. – Milo Mar 18 '13 at 21:55
I kept your code as is - added it to functions.php - renamed my content-only page template to lightbox-view.php - disabled the Post Template plugin. Unfortunately it seems to be using single.php with or without the 'view' variable. Here is the link to the test page - all three links have the class variable for the lightbox plugin. staging.vagabondians.com/sample-page – donblanco Mar 18 '13 at 23:51

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.