WordPress.org

Ready to get started?Download WordPress

Forums

Two column posts? (13 posts)

  1. uthink
    Member
    Posted 5 years ago #

    Are there themes that support two or three column posts?
    Every two or three column theme I've seen really only has
    one column for post, and two columns for widgets.

  2. uthink
    Member
    Posted 5 years ago #

    Anybody?

  3. krimsly
    Member
    Posted 5 years ago #

    Hi uthink,

    I have a similar question-- I am building a theme that needs to have three columns of content (but in a page, not in a post). The simplistic approach--there needs to be a way to "mark" the beginning of each column so it can show up in the correct column div.

    The two solutions I've been thinking of are:
    1) Mark the beginning of each column content section with a delimiter such as "[column]". Then use get_post() to get the content, parse it using the delimiter and stick each piece into it's appropriate column div. This has the advantage of all the content being located directly in the page that it goes on. People have done something similar for PHPList (open source e-newsletter).

    2) Create each column content section as a separate post, give them a category so I can associate them with a specific page. Then loop through all posts with that category and display each one in a separate column on the page. Advantage: no delimiter necessary.

    Both of these are kind of brittle solutions IMO. And I may be making this more complicated than it needs to be. Is there a simpler/more elegant solution? For example, I can imagine a plug-in that could be configured for any number of columns, and has separate text editor boxes that would allow content editing separately for each column.

    -NorthK

  4. krimsly
    Member
    Posted 5 years ago #

    Hmmm,

    It looks like there are indeed some plug-ins for mult-column. See http://wordpress.org/extend/plugins/search.php?q=columns.
    (WP Post Columns, WP Columnize, Dual Column, and Magazine Columns)

    Uthink, if you decide to try one or more of these, a follow-up letting us know how well they worked for you would be great.

    Thanks,

    NorthK

  5. uthink
    Member
    Posted 5 years ago #

    So far everything I've found that is "ready-made" simply moves content from one column to the next as new post are created. I'm looking to have column 1 dedicated to author 1, and column 2 dedicated to author 2.

    I don't mind customizing something myself, but I want to see that it's doable before I spend a lot of hours on it. Of course now I'm spending a lot of hours trying to find this unicorn. LOL

  6. uthink
    Member
    Posted 5 years ago #

    Hadn't thought about a plugin rather than a whole theme. Looks promising. I'll try some out later today!

  7. krimsly
    Member
    Posted 5 years ago #

    For those of you who want a simple but limited approach (not using a plug-in), here's the code I wrote for my theme for multiple columns within a page. It is set up to use 3 columns but is easy to modify to n columns. The text of the content should look like this:

    potential content goes here that appears before the columns.
    [--column--]
    Content for column 1 here.
    [--column--]
    Content for column 2 here.
    [--column--]
    Content for column 3 here.

    Code from theme:

    `<?php
    if (have_posts()) : while (have_posts()) : the_post();
    $page_columns = explode("[--column--]", $post->post_content);
    endwhile; endif;
    print $page_columns[0];
    print '<div class="secondaryContentColumn">';
    print $page_columns[1];
    print '</div>';
    print'<div class="secondaryContentColumn">';
    print $page_columns[2];
    print '</div>';
    print '<div class="secondaryContentColumnRight">';
    print $page_columns[3];
    print '</div>';
    ?>`

    Note: if there is content that appears before column 1, the array index for the first column should be zero. Otherwise the array index for the first column should be one. This seems to be the way explode() indexes things.

    Standard disclaimer applies: this code is provided as-is, no warranty. I am not responsible for any use of this code. Use at your own risk.

    Best wishes!

    -NorthK

  8. hashimi3
    Member
    Posted 5 years ago #

    thanks krimsly for the nice code.

    make a try and let you know guys

  9. chrisauman
    Member
    Posted 5 years ago #

    This is a great hack and I almost have it working. The problem is that you can't format any of your content. There are no line breaks and any other formatting from the style sheet is lost. For example, I have 4 or 5 nice columns on the page and the text is black. With this example, all of the text scrunches together and the text is black.

    If anyone has any idea how to rewrite this code to get around this so we can format the text with the visual editor I would appreciate it. Below is the exact code that I'm using.

    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    <div class="post" id="post-<?php the_ID(); ?>">

    <h1><?php the_title(); ?></h1>

    <?php endwhile; ?>

    <?php
    if (have_posts()) : while (have_posts()) : the_post();
    $page_columns = explode("[--column--]", $post->post_content);
    endwhile; endif;

    print '<table width="950" border="0"><tr><td width="650" valign="top">';
    print $page_columns[0];
    print '</td><td width="40">';
    print ' ';
    print '</td><td valign="top">';
    print $page_columns[1];
    print '</td></tr></table>';

    ?>
    </div>

  10. krimsly
    Member
    Posted 4 years ago #

    chrisauman and others,

    I don't know if this affects the issue you are seeing or not, but I've discovered that the hack I wrote needs some modification for WP 2.8. It looks like some functionality may have changed from 2.7, in the way apply_filters() is called by the core WP code (it seemed to be working fine in 2.7). I tried to verify this by looking at the 2.8 change history but I couldn't find mention of this.

    This was causing short tags to not be parsed, as well as formatting issues like double blank lines were not being turned into paragraphs.

    Basically, I needed to modify the code to look like this:

    if (have_posts()) : while (have_posts()) : the_post();
      $content = get_the_content();
      $content = apply_filters('the_content', $content);
      $page_sections = explode("[--section--]", $content);
    endwhile; endif;

    FMI please see also my other two posts on this topic:
    http://wordpress.org/support/topic/320014?replies=4
    http://wordpress.org/support/topic/320635?replies=1

  11. milomilo
    Member
    Posted 4 years ago #

    So far everything I've found that is "ready-made" simply moves content from one column to the next as new post are created. I'm looking to have column 1 dedicated to author 1, and column 2 dedicated to author 2.

    Hi uthink

    Have you had any joy with this 2 columns for 2 authors idea? I've also been trawling the web looking for help on this. I'm looking to set up a blog for myself and my wife the same way as you described.

    or does anyone else have any knowledge to share on this?

  12. limecity
    Member
    Posted 4 years ago #

    Hi krimsly,

    I couldn't get the code working for 2.9.
    Any update for it?

    thanks

  13. Adam Robertson
    Member
    Posted 4 years ago #

    Try this on your single.php page:

    <h2><?php the_title(); ?></h2>

    <?php $content = apply_filters( 'the_content', $post->post_content );

    // Multi-column
    if ( strlen( $content ) > 500 ) {
    $halfentry = strpos( $content, '</p>', strlen( $content ) / 2 ) + 4;
    echo '<div class="column">' . substr( $content, 0, $halfentry ) . '</div>',
    '<div class="column">' . substr( $content, $halfentry ) . '</div>',
    '<div class="clear"></div>';
    }

    // Single column
    else echo $content;
    wp_link_pages(array('before' => '<p>Pages: ', 'after' => '</p>', 'next_or_number' => 'number'));?>

Topic Closed

This topic has been closed to new replies.

About this Topic

Tags

No tags yet.