• Is it possible to have 2 separate single.php files (not category ones) that can be linked to separately?

    The reasonI ask is that I have 2 different views of my single posts.

    One is in an overlay which is called in using the ajax option of thickbox and the other is the default flat version.

    The overlay version has bits of the background, width and other things turned off using CSS. However it’s not working in any version of IE due to the fact that there are rendering issues with scripts in the page and the ajax call. I can only do this in IE if I call the single.php using the iframe option in thickbox. This causes me problems trying to control the CSS which I don’t want to have to write loads of lines of javascript hacks.

    ideally I would rather have one single.php to use for the flat default version of the posts and one called single-overlay.php which didn’t have all the divs that I’ve had to hide which I could call using something like get_permalink but it would be called something else.

    Is this possible? If so how do I link to the two separate versions?

Viewing 14 replies - 1 through 14 (of 14 total)
  • Thread Starter rebekahford

    (@rebekahford)

    Hi
    Thanks for that but that doesn’t really sort my issue out as I need to call the page in the overlay dynamically by calling get_permlink as all the thumbnails are generated randomly and on refreshing the page.

    So for instance I have something like this in the loop on the HP and in my category.php template

    <?php query_posts(array('orderby' => 'rand', 'category_name' => 'All', 'showposts' => 4)); if (have_posts()) : while (have_posts()) : the_post(); ?>
                   <li id="post-<?php the_ID() ?>" class="<?php veryplaintxt_post_class() ?>  <?php foreach((get_the_category()) as $category) {echo $category->category_nicename. ' ' ;} ?>">
    <a href="<?php the_permalink() ?>?height=450&width=820&modal=true" title="<?php printf(__('%s', 'veryplaintxt'), wp_specialchars(get_the_title(), 1)) ?>" class="thickbox">
     <?php
     if ( has_post_thumbnail() ) {
    the_post_thumbnail();
     } else {
    // the current post lacks a thumbnail
    echo 'This post ia missing a thumbnail!';
    	  }
      ?>
    </a>
    </li>
    
    ...

    this would call in the overlay version of whatever post it was.

    I just wondered if I could have more than one single.php which could somehow be called dynamically using variations of get_permalink

    Hi rebekahford,

    Are you still looking for a solution?

    It can be done with a hook to template_redirect.

    Please let me know if you need help.

    I need the same, for example for a post I need to add an extra page for each post with a map (eg wawa.com/post-5/map). You can create an extra page with all the features of a template any (the_title (), the content) for each post?

    Hola Alee.Rojas,

    Maybe I misunderstand your need, but why don’t you just create the extra page template and link to it from the post?

    Thread Starter rebekahford

    (@rebekahford)

    Hi Gabriel

    I had to go with another option and filter the page using css to hide some content depending on whether it was an overlay or a flat window page in the end but would be interested to know how it’s done.

    regards

    Rebekah

    because this is not a static page, I need a dynamic page for each post using the functions of that post, eg. custom field.

    Example: https://www.ads-software.com/extend/plugins/wp-print/

    Hi rebekahford,

    I wonder how do you differentiate the pages?

    In my case, I have a custom post type and use it to select my template instead of the original one.

    function my_template_redirect() {
    	if ( $post->post_type == 'my_custom_post_type' ) {
    		load_template(  'path-to-my-theme/my-template-file.php' );
    		// need to stop, else the original template file will be loaded.
    		die();
    	}
    }
    
    add_action( 'template_redirect',  'my_template_redirect' );

    You could add another if and select you template that way.

    function my_template_redirect() {
    	if ( 'overlay' ) {
    		load_template(  'path-to-my-theme/overlay-template-file.php' );
    		die();
    	} elseif ( 'flat-version' ) {
    		load_template(  'path-to-my-theme/flat-template-file.php' );
    		die();
    	}
    }
    
    add_action( 'template_redirect',  'my_template_redirect' );

    Hope this helps.

    Regards,
    Gabriel

    Hola Alee.Rojas,

    Sorry, I still do not understand your issue.

    Maybe the code posted above could help you.

    In simple words I want 2 versions for the same post; mipagina.com/post-2 and mipagina.com/post-2/version-2
    I hope you can help me..

    Ok, you need to check the URL.

    This code should be good for you:

    function my_template_redirect() {
    	$global wp_query;
    	if ( 'version-2' == $wp_query->query_vars['name'] ) {
    		$wp_query->is_404 = false;
    		status_header( 200 );
    		$args = array(
    				'p' => $post->ID,
    				'post_type' => $post->post_type
    				);
    		query_posts( $args );
    		the_post();
    		load_template( 'path-to-file/special-view-file.php' );
    		die();
    	}
    }
    
    add_action( 'template_redirect',  'my_template_redirect' );

    Suerte!

    yes! I think I can run, which could lead to conflict is to have all functions of single.php in my version-2
    thank you very much

    De nada ??

    Disculpa mi mal ingles..

Viewing 14 replies - 1 through 14 (of 14 total)
  • The topic ‘Two single.php templates (not category ones) in one theme?’ is closed to new replies.