Forums

Two single.php templates (not category ones) in one theme? (15 posts)

  1. rebekahford
    Member
    Posted 1 year ago #

    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?

  2. Samuel B
    moderator
    Posted 1 year ago #

  3. rebekahford
    Member
    Posted 1 year ago #

    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

  4. Gabriel Reguly
    Member
    Posted 1 year ago #

    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.

  5. Alee.Rojas
    Member
    Posted 9 months ago #

    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?

  6. Gabriel Reguly
    Member
    Posted 9 months ago #

    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?

  7. rebekahford
    Member
    Posted 9 months ago #

    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

  8. Alee.Rojas
    Member
    Posted 9 months ago #

    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: http://wordpress.org/extend/plugins/wp-print/

  9. Gabriel Reguly
    Member
    Posted 9 months ago #

    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

  10. Gabriel Reguly
    Member
    Posted 9 months ago #

    Hola Alee.Rojas,

    Sorry, I still do not understand your issue.

    Maybe the code posted above could help you.

  11. Alee.Rojas
    Member
    Posted 9 months ago #

    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..

  12. Gabriel Reguly
    Member
    Posted 9 months ago #

    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!

  13. Alee.Rojas
    Member
    Posted 9 months ago #

    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

  14. Gabriel Reguly
    Member
    Posted 9 months ago #

    De nada :-)

  15. Alee.Rojas
    Member
    Posted 9 months ago #

    Disculpa mi mal ingles..

Topic Closed

This topic has been closed to new replies.

About this Topic