- This topic has 3 replies, 2 voices, and was last updated 2 years, 1 month ago by David.
-
AuthorPosts
-
March 9, 2022 at 3:27 am #2147806Matic
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_9But 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?
March 9, 2022 at 4:04 am #2147841DavidStaffCustomer SupportHi there,
if you did not have the text between each row of 3 posts, would we just see the 9 latest posts ?
March 9, 2022 at 4:16 am #2147856MaticHi 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,
MaticMarch 9, 2022 at 10:12 am #2148515DavidStaffCustomer SupportGlad to hear that and thanks for sharing
-
AuthorPosts
- You must be logged in to reply to this topic.