Creating Custom Pages

Community Forums Forums Design Tips and Tricks Creating Custom Pages

This topic is: not resolved

This topic contains 23 replies, has 3 voices, and was last updated by  sahdow 1 year, 11 months ago.

Viewing 15 posts - 1 through 15 (of 24 total)
  • Author
    Posts
  • #2177

    sdm
    Participant

    I would like to create another page on my site that looks like the homepage.  I am told that I have to create a custom template, but I am not sure how to make that happen.  Any suggestions?

    I am using the Executive Theme.

    #2381

    SoZo
    Moderator
    Post count: 1573

    You can read about creating page templates here.


    John “Nicolas Flamel” Wright | SoZo’s design| John Wright Photography

    #2404

    sdm
    Participant

    Thanks so much! This worked!  Now I have to create another set of widgets to control this page I created.  Otherwise, it will just show the same content as the homepage, which is not what I want…

    Help again?

    sdm :)

    #2405

    SoZo
    Moderator
    Post count: 1573

    See this


    John “Nicolas Flamel” Wright | SoZo’s design| John Wright Photography

    #2411

    sdm
    Participant

    I see…

    • This reply was modified 1 year, 11 months ago by  sdm.
    • This reply was modified 1 year, 11 months ago by  sdm.
    #2457

    sdm
    Participant

    Sozo…I read it….but I am still confused. :-(

    I have created the new sidebars using the genesis plug in, but I am cannot see how to change the code to read them, or how to create another slider.

    Should I find a developer, or can this be done?

    sdm :)

     

    #2490

    sahdow
    Participant
    Post count: 4

    You can’t do that with the plugin (making an internal page that looks like the homepage). Sidebar is a term used by WordPress for all widgeted areas even if they are in the footer.

    Using the information on the page Sozu referenced, specifically “Register Your Sidebar” , the easiest way to do it is.

    Copy content of home into custom page template, copy widgetet areas from functions and paste into fucntions.

    Change the ID and Name in the “register your sidebar code” so it is unique;

    Easiest way would be to simply change id from home to page (ie page-slider, page-top, page-cta, page-middle)

    Note bolded areas – also, you will hoave to make any necessary CSS modifications once you get the widgets working

    /** Register widget areas **/
    genesis_register_sidebar( array(
    ‘id’ => ‘home-slider‘,
    ‘name’ => __( ‘Home – Slider’, ‘executive’ ),
    ‘description’ => __( ‘This is the slider section on the home page.’, ‘executive’ ),
    ) );
    genesis_register_sidebar( array(
    ‘id’ => ‘home-top‘,
    ‘name’ => __( ‘Home – Top’, ‘executive’ ),
    ‘description’ => __( ‘This is the top section of the home page.’, ‘executive’ ),
    ) );
    genesis_register_sidebar( array(
    ‘id’ => ‘home-cta‘,
    ‘name’ => __( ‘Home – Call To Action’, ‘executive’ ),
    ‘description’ => __( ‘This is the call to action section on the home page.’, ‘executive’ ),
    ) );
    genesis_register_sidebar( array(
    ‘id’ => ‘home-middle‘,
    ‘name’ => __( ‘Home – Middle’, ‘executive’ ),
    ‘description’ => __( ‘This is the middle section of the home page.’, ‘executive’ ),
    ) );

    change the id in the code of the custom page template to match the same changes.

    <!–?php /**
    * This file adds the custom template to the Executive Child Theme.
    *
    * @author StudioPress
    * @package Generate
    * @subpackage Customizations
    */

    /*
    Template Name: Custom
    */

    function executive_home_genesis_meta() {

    if ( is_active_sidebar( ‘home-slider‘ ) || is_active_sidebar( ‘home-top‘ ) || is_active_sidebar( ‘home-cta’ ) || is_active_sidebar( ‘home-middle‘ ) ) {

    remove_action( ‘genesis_loop’, ‘genesis_do_loop’ );
    add_action( ‘genesis_loop’, ‘executive_home_sections’ );
    add_filter( ‘genesis_pre_get_option_site_layout’, ‘__genesis_return_full_width_content’ );
    add_filter( ‘body_class’, ‘executive_body_class’ );
    add_action( ‘genesis_after’, ‘executive_slider_excerpt_position’ );

    /** Add body class to home page **/
    function executive_body_class( $classes ) {
    $classes[] = ‘executive-home’;
    return $classes;
    }

    /** Moves the slider pager if the sidebars are active and the screen is wide enough */
    function executive_slider_excerpt_position() {
    ?>
    <script type=”text/javascript”>
    jQuery(document).ready(function() {
    if (jQuery(“.slide-excerpt”).length > 0) {
    jQuery(“.flex-control-nav”).addClass(“nav-pos-excerpt”);
    }
    });
    </script>
    <!–?php }
    }
    }

     

    function executive_home_sections() {

    if ( is_active_sidebar( ‘home-slider‘ ) || is_active_sidebar( ‘home-top‘ ) || is_active_sidebar( ‘home-cta‘ ) || is_active_sidebar( ‘home-middle‘ ) ) {

    genesis_widget_area( ‘home-slider’, array(
    ‘before’ => ‘<div class=”home-slider widget-area”>’,
    ) );

    genesis_widget_area( ‘home-top’, array(
    ‘before’ => ‘<div class=”home-top widget-area”>’,
    ) );

    genesis_widget_area( ‘home-cta’, array(
    ‘before’ => ‘<div class=”home-cta widget-area”>’,
    ) );

    genesis_widget_area( ‘home-middle’, array(
    ‘before’ => ‘<div class=”home-middle widget-area”>’,
    ) );

    }

    }

    genesis();

     

     

    • This reply was modified 1 year, 11 months ago by  sahdow.
    • This reply was modified 1 year, 11 months ago by  sahdow.
    #2521

    sdm
    Participant

    Hi Sahdow…I already created the page…I cannot find this register your sidebar area.  Please tell me where it is.

     

    #2522

    sdm
    Participant

    Here’s the code for the page I created:

     

    <?php /* Template Name: NewBlog */ ?>

    <?php

    add_action( ‘genesis_meta’, ‘executive_home_genesis_meta’ ); /**  * Add widget support for homepage. If no widgets active, display the default loop.  *  */ function executive_home_genesis_meta() {

    if ( is_active_sidebar( ‘home-slider2′ ) || is_active_sidebar( ‘home-top’ ) || is_active_sidebar( ‘home-cta’ ) || is_active_sidebar( ‘home-middle’ ) ) {

    remove_action( ‘genesis_loop’, ‘genesis_do_loop’ );   add_action( ‘genesis_loop’, ‘executive_home_sections’ );   add_filter( ‘genesis_pre_get_option_site_layout’, ‘__genesis_return_full_width_content’ );   add_filter( ‘body_class’, ‘executive_body_class’ );   add_action( ‘genesis_after’, ‘executive_slider_excerpt_position’ );

    /** Add body class to home page **/     function executive_body_class( $classes ) {       $classes[] = ‘executive-home’;      return $classes;   }

    /** Moves the slider pager if the sidebars are active and the screen is wide enough */   function executive_slider_excerpt_position() {     ?>     <script type=”text/javascript”>       jQuery(document).ready(function() {       if (jQuery(“.slide-excerpt”).length > 0) {        jQuery(“.flex-control-nav”).addClass(“nav-pos-excerpt”);       }      });     </script>     <?php     }  } }

     

    function executive_home_sections() {

    if ( is_active_sidebar( ‘home-slider’ ) || is_active_sidebar( ‘home-top’ ) || is_active_sidebar( ‘home-cta’ ) || is_active_sidebar( ‘home-middle’ ) ) {

    genesis_widget_area( ‘home-slider’, array(    ‘before’ => ‘<div>’,   ) );

    genesis_widget_area( ‘home-top’, array(    ‘before’ => ‘<div>’,   ) );

    genesis_widget_area( ‘home-cta’, array(    ‘before’ => ‘<div>’,   ) );

    genesis_widget_area( ‘home-middle’, array(    ‘before’ => ‘<div>’,   ) );       }

    }

    genesis();

    #2526

    sahdow
    Participant
    Post count: 4

    functions.php and you page can not use the same ids as the home page or it will load the widgets from the home page unless you use conditional logic.

    Re-read the top of my last post

    #2561

    sdm
    Participant

    I know that…I just don’t see where to put what you’re telling me to change. :-(

    #2567

    SoZo
    Moderator
    Post count: 1573

    You can use Simple Sidebars to register the sidebars if you want to. Then you just need to change the sidebar IDs in your new page template to match the sidebars you registered in Simple Sidebars. If you want to register the new sidebars through functions.php then you can just copy/paste the existing sidebar registrations at the bottom of functions.php then change the names and the IDs.


    John “Nicolas Flamel” Wright | SoZo’s design| John Wright Photography

    #2583

    sahdow
    Participant
    Post count: 4

    Sozo is right, I forgot it’s a page template, so there is a place to select the simple sidebars.

    As for my example, all the bolded items are what need to be changed.

    #2629

    sdm
    Participant

    Can I just pay someone to do this…I am obviously not getting it. You guys have been great…but I am out of my area, I think. :)

    #2639

    sdm
    Participant

    Is this is file I need to change for the sidebars?

     

    <?php /** Start the engine */ require_once( get_template_directory() . ‘/lib/init.php’ );

    /** Add theme color body class */ add_filter(‘body_class’, ‘add_category_class_single’); function add_category_class_single($classes){        $classes[] = ‘executive-’ . $_GET['color'];       return $classes; }

    load_child_theme_textdomain( ‘executive’, apply_filters( ‘child_theme_textdomain’, get_stylesheet_directory() . ‘/languages’, ‘executive’ ) );

    /** Child theme (do not remove) */ define( ‘CHILD_THEME_NAME’, __( ‘Executive Theme’, ‘executive’ ) ); define( ‘CHILD_THEME_URL’, ‘http://www.studiopress.com/themes/executive’ );

    /** Add Viewport meta tag for mobile browsers */ add_action( ‘genesis_meta’, ‘executive_add_viewport_meta_tag’ ); function executive_add_viewport_meta_tag() {     echo ‘<meta name=”viewport” content=”width=device-width, initial-scale=1.0″/>’; }

    /** Add support for custom header */ add_theme_support( ‘genesis-custom-header’, array(  ‘width’  => 1140,  ‘height’  => 100 ) );

    /** Add support for custom background */ add_theme_support( ‘custom-background’ );

    /** Sets Content Width */ $content_width = apply_filters( ‘content_width’, 680, 680, 1020 );

    /** Create additional color style options */ add_theme_support( ‘genesis-style-selector’, array(  ‘executive-brown’  => __( ‘Brown’, ‘executive’ ),  ‘executive-green’  => __( ‘Green’, ‘executive’ ),  ‘executive-orange’  => __( ‘Orange’, ‘executive’ ),  ‘executive-purple’  => __( ‘Purple’, ‘executive’ ),  ‘executive-red’  => __( ‘Red’, ‘executive’ ),  ‘executive-teal’  => __( ‘Teal’, ‘executive’ ), ) );

    /** Unregister layout settings */ genesis_unregister_layout( ‘content-sidebar-sidebar’ ); genesis_unregister_layout( ‘sidebar-content-sidebar’ ); genesis_unregister_layout( ‘sidebar-sidebar-content’ );

    /** Unregister secondary sidebar */ unregister_sidebar( ‘sidebar-alt’ );

    /** Add new image sizes */ add_image_size( ‘featured’, 285, 100, TRUE ); add_image_size( ‘portfolio’, 300, 200, TRUE ); add_image_size( ‘slider’, 1140, 445, TRUE );

    /** Remove the site description */ remove_action( ‘genesis_site_description’, ‘genesis_seo_site_description’ );

    /** Relocate the post info */ remove_action( ‘genesis_before_post_content’, ‘genesis_post_info’ ); add_action( ‘genesis_before_post_title’, ‘genesis_post_info’ );

    /** Customize the post info function */ add_filter( ‘genesis_post_info’, ‘post_info_filter’ ); function post_info_filter($post_info) {  if (!is_page()) {      $post_info = ‘      <div class=\’date-info\’>’ .       __(‘posted on’, ‘executive’ ) .       ‘ [post_date format="F j, Y" before="<span class=\'date\'>" after="</span>"] ‘ .       __(‘by’, ‘executive’ ) . ‘ [post_author_posts_link] [post_edit]      </div>      <div>       [post_comments]      </div>’;      return $post_info;  } }

    /** Change the default comment callback */ add_filter( ‘genesis_comment_list_args’, ‘executive_comment_list_args’ ); function executive_comment_list_args( $args ) {  $args['callback'] = ‘executive_comment_callback’;    return $args; }

    /** Customize the comment section */ function executive_comment_callback( $comment, $args, $depth ) {

    $GLOBALS['comment'] = $comment; ?>

    <li <?php comment_class(); ?> id=”comment-<?php comment_ID() ?>”>

    <?php do_action( ‘genesis_before_comment’ ); ?>      <div>    <div>     <?php echo get_avatar( $comment, $size = $args['avatar_size'] ); ?>     <?php printf( ‘<cite>%s</cite> <span>%s:</span>’, get_comment_author_link(), apply_filters( ‘comment_author_says_text’, __( ‘says’, ‘executive’ ) ) ); ?>     <div>      <a href=”<?php echo esc_url( get_comment_link( $comment->comment_ID ) ); ?>”><?php printf( ‘%1$s ‘ . __(‘at’, ‘executive’ ) . ‘ %2$s’, get_comment_date(), get_comment_time() ); ?></a>     <?php edit_comment_link( __( ‘Edit’, ‘executive’ ), g_ent( ‘&bull; ‘ ), ” ); ?>     </div><!– end .comment-meta –>     </div><!– end .comment-author –>      </div><!– end .comment-header –>

    <div>    <?php if ($comment->comment_approved == ’0′) : ?>     <p><?php echo apply_filters( ‘genesis_comment_awaiting_moderation’, __( ‘Your comment is awaiting moderation.’, ‘executive’ ) ); ?></p>    <?php endif; ?>

    <?php comment_text(); ?>   </div><!– end .comment-content –>

    <div>    <?php comment_reply_link( array_merge( $args, array( ‘depth’ => $depth, ‘max_depth’ => $args['max_depth'] ) ) ); ?>   </div>

    <?php do_action( ‘genesis_after_comment’ );

    /** No ending </li> tag because of comment threading */

    }

    /** Create portfolio custom post type */ add_action( ‘init’, ‘executive_portfolio_post_type’ ); function executive_portfolio_post_type() {  register_post_type( ‘portfolio’,   array(    ‘labels’ => array(     ‘name’ => __( ‘Portfolio’, ‘executive’ ),     ‘singular_name’ => __( ‘Portfolio’, ‘executive’ ),    ),    ‘exclude_from_search’ => true,    ‘has_archive’ => true,    ‘hierarchical’ => true,    ‘menu_icon’ => get_stylesheet_directory_uri() . ‘/images/icons/portfolio.png’,    ‘public’ => true,    ‘rewrite’ => array( ‘slug’ => ‘portfolio’ ),    ‘supports’ => array( ‘title’, ‘editor’, ‘author’, ‘thumbnail’, ‘excerpt’, ‘trackbacks’, ‘custom-fields’, ‘comments’, ‘revisions’, ‘page-attributes’, ‘genesis-seo’ ),   )  ); }

    /** Change the number of portfolio items to be displayed (props Bill Erickson) */ add_action( ‘pre_get_posts’, ‘executive_portfolio_items’ ); function executive_portfolio_items( $query ) {

    if( $query->is_main_query() && !is_admin() && is_post_type_archive( ‘portfolio’ ) ) {   $query->set( ‘posts_per_page’, ’12′ );  }

    }

    /** Add support for 3-column footer widgets */ add_theme_support( ‘genesis-footer-widgets’, 3 );

    /** Register widget areas **/ genesis_register_sidebar( array(  ‘id’   => ‘home-slider’,  ‘name’   => __( ‘Home – Slider’, ‘executive’ ),  ‘description’ => __( ‘This is the slider section on the home page.’, ‘executive’ ), ) ); genesis_register_sidebar( array(  ‘id’   => ‘home-top’,  ‘name’   => __( ‘Home – Top’, ‘executive’ ),  ‘description’ => __( ‘This is the top section of the home page.’, ‘executive’ ), ) ); genesis_register_sidebar( array(  ‘id’   => ‘home-cta’,  ‘name’   => __( ‘Home – Call To Action’, ‘executive’ ),  ‘description’ => __( ‘This is the call to action section on the home page.’, ‘executive’ ), ) ); genesis_register_sidebar( array(  ‘id’   => ‘home-middle’,  ‘name’   => __( ‘Home – Middle’, ‘executive’ ),  ‘description’ => __( ‘This is the middle section of the home page.’, ‘executive’ ),

Viewing 15 posts - 1 through 15 (of 24 total)

You must be logged in to reply to this topic.