[Support request] Generate_do_template_part ( ‘archive’ ) custom post

Home Forums Support [Support request] Generate_do_template_part ( ‘archive’ ) custom post

Home Forums Support Generate_do_template_part ( ‘archive’ ) custom post

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #2147806
    Matic

    Hi,

    I’m creating a custom homepage that would look something like this:

    HEADER

    #Some text
    Custom_post_1 Custom_post_2 Custom_post_3

    #Some text
    Custom_post_4 Custom_post_5 Custom_post_6

    #Some text
    Custom_post_7 Custom_post_8 Custom_post_9

    But to do that, I can’t just use custom hooks, but actually create a home.php, which I have.

    For a certain Custom_post_1 Custom_post_2 Custom_post_3, I wrote the following code:

    <?php
    
    if (generate_has_default_loop())
    {
        if (have_posts()):
    
            do_action('generate_before_loop', 'archive');
    
            $thePostIdArray = array(
                "1",
                "2",
                "3"
            ); /* Some custom post IDs */
            $limit = 3;
    
            while (have_posts()):
    
                the_post();
                $counter++;
    
                if ($counter < $limit + 1):
    
                    $post_id = $thePostIdArray[$counter - 1];
                    generate_do_template_part('archive', get_post_format($post_id));
                endif;
            endwhile;
        else:
        endif;
    } ?>

    This code still outputs the most recent 3 posts and not the “1”, “2”, and “3”. I realize that I need to somehow convey these post IDs, probably through generate_do_template_part, but I don’t know how.

    I couldn’t find any useful documentation either (this didn’t help). I tried reverse engineering via theme-fuctions.php lines 560-586, but I couldn’t figure it out.

    Could you please help me with that?

    #2147841
    David
    Staff
    Customer Support

    Hi there,

    if you did not have the text between each row of 3 posts, would we just see the 9 latest posts ?

    #2147856
    Matic

    Hi David,

    No these would be some custom (hand-picked) posts. I chose post ID examples 1-9 for readability

    EDIT: I realize I could create the same static HTML as the archive has and then manually add various attributes, like thumbnail, title, link, etc.

    EDIT #2: I found a solution using foreach. I don’t if it’s the best out there, but it gets the job done.

    If it helps anyone in the future, here’s the code:

    $ids = array("1", "2", "3"); /* Use your actual post IDs */
    
    foreach ($ids as $id ) {
        $post = get_post ( $id );
        setup_postdata( $post );
        generate_do_template_part(  'archive' );
    }

    Cheers,
    Matic

    #2148515
    David
    Staff
    Customer Support

    Glad to hear that and thanks for sharing

Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.