• Skip to main content
  • Skip to forum navigation

StudioPress

  • Shop for Themes
  • My StudioPress

Forum navigation

  • Home
  • General Genesis Discussions
  • StudioPress Themes
  • Genesis Blocks
    • Genesis Blocks
    • Genesis Custom Blocks
  • Retired Themes
  • FAQs
  • Forum Rules
  • Internationalization and Translations
  • Forum Bugs and Suggestions
  • Forum Log In

Are You Using The WordPress Block Editor?

Genesis now offers plugins that help you build better sites faster with the WordPress block editor (Gutenberg). Try the feature-rich free versions of each plugin for yourself!

Genesis Blocks Genesis Custom Blocks

Portfolio possible in 411 Pro Theme?

Welcome!

These forums are for general discussion on WordPress and Genesis. Official support for StudioPress themes is offered exclusively at My StudioPress. Responses in this forum are not guaranteed. Please note that this forum will require a new username, separate from the one used for My.StudioPress.

Log In
Register Lost Password

Community Forums › Forums › Archived Forums › Design Tips and Tricks › Portfolio possible in 411 Pro Theme?

This topic is: not resolved

Tagged: 411 Pro, portfolio

  • This topic has 11 replies, 4 voices, and was last updated 9 years, 2 months ago by Henrik Blomgren.
Viewing 12 posts - 1 through 12 (of 12 total)
  • Author
    Posts
  • January 1, 2014 at 5:18 am #82458
    Sjoerd Smeets
    Participant

    Hello, i was trying to make a portfolio page within 411 Pro theme using the instructions of http://wpsites.net/web-design/add-responsive-portfolio-page-to-lifestyle-pro/ and trying to adapt these for the 411 Pro theme, but that doesn't work as intended. Doesa anyone have an idea how to approach this?

    The page a now have pulls all posts from a CPT called photoblog where i import Instagram photo's from 2 accounts using a plugin. I want to show a few photos per page (with pagination) instead of just all the links (see included url).

    Thanks!

    http://www.veermakelol.nl/fotoblog/
    January 1, 2014 at 5:46 am #82459
    Brad Dalton
    Participant

    Yes. What doesn't work as intended?

    The tutorial you linked to works on another theme ( Lifestyle Pro) and wasn't written specifically to work on the 411 Pro theme.

    Maybe this tutorial will help because not all themes use the same code http://wpsites.net/web-design/add-portfolio-page-to-411-theme-by-studiopress/

    Please clarify what you mean by this:

    The page a now have pulls all posts from a CPT called photoblog where i import Instagram photo’s from 2 accounts using a plugin.

    As long as the imported images are saved as featured images for your single CPT's, they should display on your Portfolio CPT archive page.


    Tutorials for StudioPress Themes.

    January 1, 2014 at 6:20 am #82460
    Sjoerd Smeets
    Participant

    They are not saved as featured images, they go directly into the post itself.
    Is it possible without the featured image?

    January 1, 2014 at 6:34 am #82463
    Sjoerd Smeets
    Participant

    When i follow you're instructions and want to save the permalinks i get this error:

    Warning: Cannot modify header information - headers already sent by (output started at /home/vml2011/domains/veermakelol.nl/public_html/wp-content/themes/the-411-pro/functions.php:1) in /home/vml2011/domains/veermakelol.nl/public_html/wp-includes/pluggable.php on line 896

    January 1, 2014 at 6:50 am #82465
    Brad Dalton
    Participant

    Worked perfectly for me

    411 Portfolio cpt

    Where exactly in the functions file did you paste the code?

    Here are the instructions on the tutorial i linked to. If you just paste the code anywhere it may not work.

    Add PHP To Functions File

    Note: Please copy all the code from the view raw link and paste it at the end of your child themes functions.php file using a text editor like Notepad++


    Tutorials for StudioPress Themes.

    January 1, 2014 at 7:09 am #82466
    stinkykong
    Participant

    I took a different approach to adding what might give you what you're looking for. What I did was not really a portfolio using a custom post type but rather creating a separate category and using CSS to resize and float the listings as I wanted.

    My example is:
    http://websentia.com/category/web-portfolio/

    You might not call it "elegant" but it gave me what I wanted for this one particular instance. You could also use CSS to hide the featured images if desired, leaving them visible in other category archives. (Before StudioPress offered portfolios in some of their themes, I was accustomed to Wes Straham's method at AppFinite, where your portfolio was not separate from the flow of other posts and would include text snippets. I'm still sort of caught in between the two methods. BTW, Brad is always helpful and gives a lot of good information. Kudos to Brad.)

    Here's the CSS I used:
    .category-web-portfolio .entry {
    width: 100%;
    max-width: 370px;
    float: left;
    margin: 20px 5px;
    height: auto;
    }
    .category-web-portfolio .entry-header {
    height: 70px;
    overflow: hidden;
    }
    .category-web-portfolio .category-web-portfolio .entry-header h2 {
    font-size: 2.5rem;
    }
    .category-web-portfolio .category-web-portfolio .entry-content {
    height: 550px;
    overflow: hidden;
    }
    .home .category-web-portfolio .entry-content {
    height: auto;
    overflow: hidden;
    }
    .category-web-portfolio .entry-content a:hover, .category-web-portfolio .entry-header a:hover {
    opacity: 0.7;
    }


    Web Design by Websentia Web Services
    http://websentia.com

    January 2, 2014 at 12:08 am #82629
    Sjoerd Smeets
    Participant

    functions.php

    /<?php
    //* Start the engine
    include_once( get_template_directory() . '/lib/init.php' );
    
    //* Set Localization (do not remove)
    load_child_theme_textdomain( 'the-411', apply_filters( 'child_theme_textdomain', get_stylesheet_directory() . '/languages', 'the-411' ) );
    
    //* Child theme (do not remove)
    define( 'CHILD_THEME_NAME', __( 'The 411 Pro Theme', 'the-411' ) );
    define( 'CHILD_THEME_URL', 'http://my.studiopress.com/themes/the-411/' );
    define( 'CHILD_THEME_VERSION', '1.0' );
    
    //* Add HTML5 markup structure
    add_theme_support( 'html5' );
    
    //* Add viewport meta tag for mobile browsers
    add_theme_support( 'genesis-responsive-viewport' );
    
    //* Enqueue Google fonts
    add_action( 'wp_enqueue_scripts', 'the_411_google_fonts' );
    function the_411_google_fonts() {
    
    	wp_enqueue_style( 'google-font', '//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400|Roboto+Slab:300,400', array(), CHILD_THEME_VERSION );
    
    }
    
    //* Enqueue Backstretch script and prepare images for loading
    add_action( 'wp_enqueue_scripts', 'the_411_enqueue_scripts' );
    function the_411_enqueue_scripts() {
    
    	wp_enqueue_script( 'the-411-responsive-menu', get_bloginfo( 'stylesheet_directory' ) . '/js/responsive-menu.js', array( 'jquery' ), '1.0.0' );
    
    	//* Load scripts only if custom background is being used
    	if ( ! get_background_image() )
    		return;
    
    	wp_enqueue_script( 'the-411-backstretch', get_bloginfo( 'stylesheet_directory' ) . '/js/backstretch.js', array( 'jquery' ), '1.0.0' );
    	wp_enqueue_script( 'the-411-backstretch-set', get_bloginfo('stylesheet_directory').'/js/backstretch-set.js' , array( 'jquery', 'the-411-backstretch' ), '1.0.0' );
    
    	wp_localize_script( 'the-411-backstretch-set', 'BackStretchImg', array( 'src' => str_replace( 'http:', '', get_background_image() ) ) );
    
    }
    
    //* Add support for custom background
    add_theme_support( 'custom-background', array( 'wp-head-callback' => 'the_411_background_callback' ) ); 
    
    //* Add custom background callback for background color
    function the_411_background_callback() {
    
    	if ( ! get_background_color() )
    		return;
    
    	printf( '<style>body { background-color: #%s; }</style>' . "\n", get_background_color() );
    
    }
    
    //* Add support for custom header
    add_theme_support( 'custom-header', array(
    	'width'           => 200,
    	'height'          => 60,
    	'header-selector' => '.site-title a',
    	'header-text'     => false,
    ) );
    
    //* Add support for post formats
    add_theme_support( 'post-formats', array(
    	'quote',
    ) );
    
    //* Add support for 2-column footer widgets
    add_theme_support( 'genesis-footer-widgets', 2 );
    
    //* Unregister layout settings
    genesis_unregister_layout( 'content-sidebar' );
    genesis_unregister_layout( 'sidebar-content' );
    genesis_unregister_layout( 'content-sidebar-sidebar' );
    genesis_unregister_layout( 'sidebar-sidebar-content' );
    genesis_unregister_layout( 'sidebar-content-sidebar' );
    
    //* Unregister primary/secondary navigation menus
    remove_theme_support( 'genesis-menus' );
    
    //* Unregister sidebars
    unregister_sidebar( 'sidebar' );
    unregister_sidebar( 'sidebar-alt' );
    
    //* Force full-width-content layout setting
    add_filter( 'genesis_site_layout', '__genesis_return_full_width_content' );
    
    //* Remove elements with post formats
    add_action( 'genesis_before_entry', 'the_411_remove_elements' );
    function the_411_remove_elements() {
    	
    	//* Remove if post has format
    	if ( get_post_format() ) {
    	
    		add_filter( 'genesis_pre_get_option_content_archive', 'the_411_format_content' );
    		add_filter( 'genesis_pre_get_option_content_archive_limit', 'the_411_content_limit' );
    		add_filter( 'genesis_pre_get_option_content_archive_thumbnail', '__return_false' );
    		remove_action( 'genesis_entry_header', 'genesis_do_post_title' );
    		remove_action( 'genesis_entry_header', 'genesis_entry_header_markup_open', 5 );
    		remove_action( 'genesis_entry_header', 'genesis_post_info', 12 );
    		remove_action( 'genesis_entry_header', 'genesis_entry_header_markup_close', 15 );
    		remove_action( 'genesis_entry_footer', 'genesis_entry_footer_markup_open', 5 );
    		remove_action( 'genesis_entry_footer', 'genesis_entry_footer_markup_close', 15 );
    		remove_action( 'genesis_entry_footer', 'genesis_post_meta' );
    		
    	}
    	//* Add back, as post has no format
    	else {
    	
    		remove_filter( 'genesis_pre_get_option_content_archive', 'the_411_format_content' );
    		remove_filter( 'genesis_pre_get_option_content_archive_limit', 'the_411_content_limit' );
    		remove_filter( 'genesis_pre_get_option_content_archive_thumbnail', '__return_false' );
    		add_action( 'genesis_entry_header', 'genesis_do_post_title' );
    		add_action( 'genesis_entry_header', 'genesis_entry_header_markup_open', 5 );
    		add_action( 'genesis_entry_header', 'genesis_post_info', 12 );
    		add_action( 'genesis_entry_header', 'genesis_entry_header_markup_close', 15 );
    		add_action( 'genesis_entry_footer', 'genesis_entry_footer_markup_open', 5 );
    		add_action( 'genesis_entry_footer', 'genesis_entry_footer_markup_close', 15 );
    		add_action( 'genesis_entry_footer', 'genesis_post_meta' );
    		
    	}
    
    }
    
    function the_411_format_content() {
    	return 'full';
    }
    
    function the_411_content_limit() {
    	return '0';
    }
    
    //* Hook social icons and click here widget areas
    add_action( 'genesis_after_header', 'the_411_extras' );
    function the_411_extras() {
    
    	if ( is_active_sidebar( 'social-icons' ) || is_active_sidebar( 'click-here' ) ) {
    
     		echo '<div class="site-extras">';
    
     		genesis_widget_area( 'social-icons', array(
    			'before'	=> '<div class="social-icons">',
    			'after'		=> '</div>'
    		) );
    
    		genesis_widget_area( 'click-here', array(
    			'before'	=> '<div class="click-here">',
    			'after'		=> '</div>'
    		) );
    
    		echo '</div>';
    
    	}
    
    }
    
    //* Hook welcome message widget area before content
    add_action( 'genesis_before_loop', 'the_411_welcome_message' );
    function the_411_welcome_message() {
    
    	if ( ! is_front_page() || get_query_var( 'paged' ) >= 2 )
    		return;
    
    	genesis_widget_area( 'welcome-message', array(
    		'before' => '<div class="welcome-message widget-area">',
    		'after'  => '</div>',
    	) );
    
    }
    
    //* Remove entry meta in entry footer
    add_action( 'genesis_before_entry', 'the_411_remove_entry_meta' );
    function the_411_remove_entry_meta() {
    	
    	//* Remove if not single post
    	if ( ! is_single() ) {
    	
    		remove_action( 'genesis_entry_footer', 'genesis_entry_footer_markup_open', 5 );
    		remove_action( 'genesis_entry_footer', 'genesis_post_meta' );
    		remove_action( 'genesis_entry_footer', 'genesis_entry_footer_markup_close', 15 );
    		
    	}
    
    }
    
    //* Hook after post widget after the entry content
    add_action( 'genesis_after_entry', 'the_411_after_entry', 5 );
    function the_411_after_entry() {
    
    	if ( is_singular( 'post' ) )
    		genesis_widget_area( 'after-entry', array(
    			'before' => '<div class="after-entry widget-area">',
    			'after'  => '</div>',
    		) );
    
    }
    
    //* Modify the WordPress read more link
    add_filter( 'the_content_more_link', 'the_411_read_more' );
    function the_411_read_more() {
    
    	return '<a class="more-link" href="' . get_permalink() . '">' . __( 'Continue Reading', 'the_411' ) . '</a>';
    
    }
    
    //* Modify the content limit read more link
    add_action( 'genesis_before_loop', 'the_411_more' );
    function the_411_more() {
    
    	add_filter( 'get_the_content_more_link', 'the_411_read_more' );
    	
    }
    
    add_action( 'genesis_after_loop', 'the_411_remove_more' );
    function the_411_remove_more() {
    
    	remove_filter( 'get_the_content_more_link', 'the_411_read_more' );
    	
    }
    
    //* Remove comment form allowed tags
    add_filter( 'comment_form_defaults', 'the_411_remove_comment_form_allowed_tags' );
    function the_411_remove_comment_form_allowed_tags( $defaults ) {
    
    	$defaults['comment_notes_after'] = '';
    	return $defaults;
    
    }
    
    //* Modify the size of the Gravatar in the author box
    add_filter( 'genesis_author_box_gravatar_size', 'the_411_author_box_gravatar' );
    function the_411_author_box_gravatar( $size ) {
    
    	return 140;
    
    }
    
    //* Modify the size of the Gravatar in the entry comments
    add_filter( 'genesis_comment_list_args', 'the_411_comments_gravatar' );
    function the_411_comments_gravatar( $args ) {
    
    	$args['avatar_size'] = 96;
    
    	return $args;
    
    }
    
    //* Register widget areas
    genesis_register_sidebar( array(
    	'id'          => 'welcome-message',
    	'name'        => __( 'Welcome Message', 'the_411' ),
    	'description' => __( 'This is the welcome message widget area.', 'the_411' ),
    ) );
    genesis_register_sidebar( array(
    	'id'          => 'social-icons',
    	'name'        => __( 'Social Icons', 'the_411' ),
    	'description' => __( 'This is the social icons widget area.', 'the_411' ),
    ) );
    genesis_register_sidebar( array(
    	'id'          => 'click-here',
    	'name'        => __( 'Click Here', 'the_411' ),
    	'description' => __( 'This is the click here widget area.', 'the_411' ),
    ) );
    genesis_register_sidebar( array(
    	'id'          => 'after-entry',
    	'name'        => __( 'After Entry', 'the_411' ),
    	'description' => __( 'This is the after entry widget area.', 'the_411' ),
    ) );
    
    //* Add a custom post type Recepten
    add_action( 'init', 'recipe_post_type' );
    function recipe_post_type() {
      // Portfolio custom post type
    	register_post_type( 'recepten',
    		array(
    			'labels' => array(
    				'name' => __( 'Recepten' ),
    				'singular_name' => __( 'Recepten' ),
    			),
    			'has_archive' => true,
    			'public' => true,
    			'show_ui' => true, // defaults to true so don't have to include
    			'show_in_menu' => true, // defaults to true so don't have to include
    			'rewrite' => array( 'slug' => 'recepten' ),
    			'supports' => array( 'title', 'editor', 'comments', 'genesis-seo', 'thumbnail','genesis-cpt-archives-settings' ),
    		)
    	);
    }
    
    //* Add a custom post type Photoblog
    add_action( 'init', 'photoblog_post_type' );
    function photoblog_post_type() {
      // Portfolio custom post type
    	register_post_type( 'photoblog',
    		array(
    			'labels' => array(
    				'name' => __( 'Photoblog' ),
    				'singular_name' => __( 'photoblog' ),
    			),
    			'has_archive' => true,
    			'public' => true,
    			'show_ui' => true, // defaults to true so don't have to include
    			'show_in_menu' => true, // defaults to true so don't have to include
    			'rewrite' => array( 'slug' => 'photoblog' ),
    			'supports' => array( 'title', 'editor', 'comments', 'genesis-seo', 'thumbnail','genesis-cpt-archives-settings' ),
    		)
    	);
    }
    
    //* Vanaf hier aanpassingen voor grid view photoblog
    
    //* 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' ),
    			),
    			'has_archive'  => true,
    			'hierarchical' => true,
    			'menu_icon'    => get_stylesheet_directory_uri() . '/lib/icons/portfolio.png',
    			'public'       => true,
    			'rewrite'      => array( 'slug' => 'portfolio', 'with_front' => false ),
    			'supports'     => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'revisions', 'page-attributes', 'genesis-seo', 'genesis-cpt-archives-settings' ),
    			'taxonomies'   => array( 'portfolio-type' ),
    
    		)
    	);
    	
    }
    
    //* Add Portfolio Type Taxonomy to columns
    add_filter( 'manage_taxonomies_for_portfolio_columns', 'portfolio_columns' );
    function portfolio_columns( $taxonomies ) {
    
        $taxonomies[] = 'portfolio-type';
        return $taxonomies;
    
    }
    
    //* 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', '8' );
    	}
    
    }
    
    //* Customize Portfolio post info and post meta
    add_filter( 'genesis_post_info', 'executive_portfolio_post_info_meta' );
    add_filter( 'genesis_post_meta', 'executive_portfolio_post_info_meta' );
    function executive_portfolio_post_info_meta( $output ) {
    
         if( 'portfolio' == get_post_type() )
            return '';
    
        return $output;
    
    }
    
    //* Load Admin Stylesheet
    add_action( 'admin_enqueue_scripts', 'executive_load_admin_styles' );
    function executive_load_admin_styles() {
    
    	wp_register_style( 'custom_wp_admin_css', get_stylesheet_directory_uri() . '/lib/admin-style.css', false, '1.0.0' );
    	wp_enqueue_style( 'custom_wp_admin_css' );
    
    }
    
    //* Create Portfolio Type custom taxonomy
    add_action( 'init', 'executive_type_taxonomy' );
    function executive_type_taxonomy() {
    
    	register_taxonomy( 'portfolio-type', 'portfolio',
    		array(
    			'labels' => array(
    				'name'          => _x( 'Types', 'taxonomy general name', 'executive' ),
    				'add_new_item'  => __( 'Add New Portfolio Type', 'executive' ),
    				'new_item_name' => __( 'New Portfolio Type', 'executive' ),
    			),
    			'exclude_from_search' => true,
    			'has_archive'         => true,
    			'hierarchical'        => true,
    			'rewrite'             => array( 'slug' => 'portfolio-type', 'with_front' => false ),
    			'show_ui'             => true,
    			'show_tagcloud'       => false,
    		)
    	);
    
    }
    January 2, 2014 at 12:22 am #82630
    Sjoerd Smeets
    Participant

    When i pasted the code of functions.php i saw the flaw..

    Imported all Instagram photo's to the new portfolio CPT and created the page. Works like a charm!
    Thanks Brad.

    http://www.veermakelol.nl/portfolio/

    January 2, 2014 at 3:55 am #82639
    Brad Dalton
    Participant

    You're welcome Sjoerd.


    Tutorials for StudioPress Themes.

    January 9, 2014 at 1:44 am #84134
    Henrik Blomgren
    Member

    If I copy the creation of the portfolio custom post type with

    //* Create Portfolio Type custom taxonomy
    add_action( 'init', 'executive_type_taxonomy' );
    function executive_type_taxonomy() {
    
    	register_taxonomy( 'portfolio-type', 'portfolio',
    		array(
    			'labels' => array(
    				'name'          => _x( 'Types', 'taxonomy general name', 'executive' ),
    				'add_new_item'  => __( 'Add New Portfolio Type', 'executive' ),
    				'new_item_name' => __( 'New Portfolio Type', 'executive' ),
    			),
    			'exclude_from_search' => true,
    			'has_archive'         => true,
    			'hierarchical'        => true,
    			'rewrite'             => array( 'slug' => 'portfolio-type', 'with_front' => false ),
    			'show_ui'             => true,
    			'show_tagcloud'       => false,
    		)
    	);
    
    }

    And then when I create posts from this CPT I get a 404 when I try to view the single CPT type portfolio. Why is this?

    January 9, 2014 at 10:43 pm #84314
    Brad Dalton
    Participant

    The single cpt must use the same name as the cpt so single.portfolio.php will work for a CPY named portfolio.

    The screenshot proves it works and it snot difficult.

    The code you pasted above isn't for the CPT, its for the taxonomy support.


    Tutorials for StudioPress Themes.

    January 9, 2014 at 10:59 pm #84320
    Henrik Blomgren
    Member

    AHA so that´s why when using rewrite and not having a single-cpt.php it turns out to call a 404. Then I understand.

    And yes, when I look at it indeed it´s the taxonomy support and not creating the CPT. I must have been extremely tired when copying that snippet of code. My bad. I´ll change the code and write a single-portfolio.php and if that doesn´t work i´ll come back.

    Thanks for the help Brad!

  • Author
    Posts
Viewing 12 posts - 1 through 12 (of 12 total)
  • The forum ‘Design Tips and Tricks’ is closed to new topics and replies.

CTA

Ready to get started? Create a site or shop for themes.

Create a site with WP EngineShop for Themes

Footer

StudioPress

© 2023 WPEngine, Inc.

Products
  • Create a Site with WP Engine
  • Shop for Themes
  • Theme Features
  • Get Started
  • Showcase
Company
  • Brand Assets
  • Terms of Service
  • Accptable Usse Policy
  • Privacy Policy
  • Refund Policy
  • Contact Us
Community
  • Find Developers
  • Forums
  • Facebook Group
  • #GenesisWP
  • Showcase
Resources
  • StudioPress Blog
  • Help & Documentation
  • FAQs
  • Code Snippets
  • Affiliates
Connect
  • StudioPress Live
  • StudioPress FM
  • Facebook
  • Twitter
  • Dribbble