- This topic has 5 replies, 3 voices, and was last updated 3 years, 3 months ago by
David.
-
AuthorPosts
-
December 7, 2021 at 6:06 am #2041106
Henry
I have a customized PHP template for a page that acts as our home page.
The reason it has been customized is that it has a fairly complex operation with the ACF plugin.
Anyways – what has happened is that the template defaults to the right-hand side widget column, and if I set it to any other option the sidebar remains where it is…
If I remove this line:
do_action( ‘generate_after_primary_content_area’ );
//generate_construct_sidebars();
get_footer();And comment out the //generate_construct_sidebars(); does that mean that I will force the template to just have one column or should I create a one-page column in the elements option using GeneratePress Pro?
Thanks! Hope that makes sense…
Here’s the template:
<?php /** * Template Name: Home List * Template Post Type: page,list * * @package GeneratePress */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } get_header(); ?> <div id="primary" <?php generate_do_element_classes( 'content' ); ?>> <main id="main" <?php generate_do_element_classes( 'main' ); ?>> <?php /** * generate_before_main_content hook. * * @since 0.1 */ do_action( 'generate_before_main_content' ); if ( generate_has_default_loop() ) { while ( have_posts() ) : the_post(); generate_do_template_part( 'page' ); endwhile; } /** * generate_after_main_content hook. * * @since 0.1 */ do_action( 'generate_after_main_content' ); ?> <?php $args = [ 'post_type'=> 'event-series', 'orderby' => 'meta_value_num', 'order' => 'ASC', 'meta_query'=>[ [ 'key'=>'event_loop_0_event_start_date', 'compare'=>'EXISTS' ] ] ]; $eventsQuery = new WP_Query($args); ?> <div class="section-event-items inside-article"> <h2>All Events</h2> <?php $allEvents=array(); $currentDate=time(); while($eventsQuery->have_posts()): $eventsQuery->the_post(); $mainLink = get_the_permalink(); //$monthYear= if( have_rows('event_loop') ): while( have_rows('event_loop') ) : the_row(); if(strtotime(get_sub_field('event_start_date')) < $currentDate) continue; $monthYear= date("01-m-Y",strtotime(get_sub_field('event_start_date'))); if(!isset($allEvents[$monthYear])){ $allEvents[$monthYear]=array(); } $row=get_row(true); $row['mainLink']=$mainLink; $allEvents[$monthYear][]= $row; endwhile; endif; endwhile; uksort($allEvents, function($a,$b){ return strtotime($a) - strtotime($b); }); if(!empty($allEvents)): foreach($allEvents as $events): //$month = usort($events, function($a,$b){ return strtotime($a['event_start_date']) - strtotime($b['event_start_date']); }); $eventDate=strtotime($events[0]['event_start_date']); echo '<div class="event-list-wrap"><h2 class="month-name">'.date("F Y",$eventDate).'</h2>'; foreach($events as $event): $event_country = $event['country']; $event_address = "<span class='acf-country-flag-icon famfamfam-flags ".strtolower($event_country['value'])."'></span>".$event_country['label'].' | '; if($event_country['value'] == "US") $event_address.= $event['us_state']['label'].', '; $event_address.= $event['city']; echo ' <div class="event-post-item-row" style="padding-bottom:16px;"> <span class="event-title"> <a href="'.$event['mainLink'].'" target="_blank"> '.$event['event_title'].' </a> </span> <br /> <span class="event-date"> '.$event_address.' </span> <br /> <span class="event-date">'.$event['event_start_date'].'</span> </div>'; endforeach; echo '</div>'; endforeach; else : echo '<div class="no-event-found">Event Not Found </div>'; endif; ?> <!-- https://www.advancedcustomfields.com/resources/taxonomy/ --> </div> </main> </div> <?php /** * generate_after_primary_content_area hook. * * @since 2.0 */ do_action( 'generate_after_primary_content_area' ); generate_construct_sidebars(); get_footer();December 7, 2021 at 8:16 am #2041384David
StaffCustomer SupportHi there,
if you remove ( or comment out as you have ) the
generate_construct_sidebars();then you should just have the main content container ie. a single column layout.December 8, 2021 at 4:53 am #2042254Henry
Thanks very much
December 8, 2021 at 5:47 am #2042305David
StaffCustomer SupportYou’re welcome
December 20, 2022 at 11:55 pm #2468988Eugene
Hi David
I just thought I’d follow up on this ticket before I create a new one.
In the same breath, is it possible to force the sidebar in a PHP template, regardless of the customizer sidebar settings and any GP layout elements defined?
I want to be able to show the sidebar on the right of my single-used-car.php custom post type at the PHP level, without having to create a GP element or edit the customizer settings.
Please let me know if this is possible?
December 21, 2022 at 3:53 am #2469196David
StaffCustomer SupportHi there,
you can use the
generate_sidebar_layoutfilter hook:https://docs.generatepress.com/article/sidebar-layout/#using-a-function
-
AuthorPosts
- You must be logged in to reply to this topic.