我为genesis框架添加了一个名为“modalwindow”的新布局。这个布局应该只显示内容,因为它是一个加载页面内容的模式窗口(我不想显示任何标题、边栏、页脚、菜单或其他任何内容,只想显示该页面的内容)。
我应该为它添加什么来只显示该页面的内容而不显示其他内容?ie:删除页眉、边栏、页脚、菜单等的代码。目前我已经在WP admin中为页面选择了“modalwindow”布局,现在需要从内容中删除所有内容。
代码:
// from "/themes/genesis/lib/structure/layout.php"
<?php
/**
* Controls layout structure.
*
* @package Genesis
*/
add_filter( \'content_width\', \'genesis_content_width\', 10, 3 );
/**
* This function filters the content width based on the user selected layout.
*
* @since 1.6
*/
function genesis_content_width( $default, $small, $large ) {
switch ( genesis_site_layout() ) {
case \'full-width-content\':
$width = $large;
break;
case \'content-sidebar-sidebar\':
case \'sidebar-content-sidebar\':
case \'sidebar-sidebar-content\':
$width = $small;
break;
default:
$width = $default;
}
return $width;
}
add_filter(\'body_class\', \'genesis_custom_body_class\', 15);
/**
* This function/filter adds custom body class(es) to the
* body class array. It accepts values from a per-post/page
* custom field, and only outputs when viewing singular page.
*
* @since 1.4
*/
function genesis_custom_body_class( $classes ) {
$new_class = is_singular() ? genesis_get_custom_field( \'_genesis_custom_body_class\' ) : null;
if ( $new_class ) $classes[] = esc_attr( sanitize_html_class( $new_class ) );
return $classes;
}
add_action(\'genesis_meta\', \'genesis_load_stylesheet\');
/**
* This function loads the stylesheet.
* If a child theme is active, it loads the child theme\'s stylesheet,
* otherwise, it loads the Genesis stylesheet.
*
*/
function genesis_load_stylesheet() {
echo \'<link rel="stylesheet" href="\'.get_bloginfo(\'stylesheet_url\').\'" type="text/css" media="screen" />\'."\\n";
}
add_filter(\'body_class\', \'genesis_header_body_classes\');
/**
* This function/filter adds new classes to the <body>
* so that we can use psuedo-variables in our CSS file,
* which helps us achieve multiple header layouts with minimal code
*
* @since 0.2.2
*/
function genesis_header_body_classes($classes) {
// add header classes to $classes array
if ( ! is_active_sidebar( \'header-right\' ) )
$classes[] = \'header-full-width\';
if ( \'image\' == genesis_get_option(\'blog_title\') || \'blank\' == get_header_textcolor() )
$classes[] = \'header-image\';
// return filtered $classes
return $classes;
}
add_filter(\'body_class\', \'genesis_layout_body_classes\');
/**
* This function/filter adds new classes to the <body>
* so that we can use psuedo-variables in our CSS file,
* which helps us achieve multiple site layouts with minimal code
*
* @since 0.2.2
*/
function genesis_layout_body_classes($classes) {
// get the layout
$site_layout = genesis_site_layout();
// add new class to $classes array
if ( $site_layout ) $classes[] = $site_layout;
// return filtered $classes
return $classes;
}
add_action(\'genesis_after_content\', \'genesis_get_sidebar\');
/**
* This function outputs the sidebar.php file
* if specified in theme options or in-post options
*
* @since 0.2
*/
function genesis_get_sidebar() {
// get the layout
$site_layout = genesis_site_layout();
// don\'t load sidebar on pages that don\'t need it
if ( $site_layout == \'full-width-content\' ||
$site_layout == \'modalwindow\' ) return;
// output the primary sidebar
get_sidebar();
}
add_action(\'genesis_after_content_sidebar_wrap\', \'genesis_get_sidebar_alt\');
/**
* This function outputs the sidebar_alt.php file
* if specified in theme options or in-post options
*
* @since 0.2
*/
function genesis_get_sidebar_alt() {
// get the layout
$site_layout = genesis_site_layout();
// don\'t load sidebar-alt on pages that don\'t need it
if ( $site_layout == \'content-sidebar\' ||
$site_layout == \'sidebar-content\' ||
$site_layout == \'full-width-content\' ||
$site_layout == \'modalwindow\' ) return;
// output the alternate sidebar
get_sidebar(\'alt\');
}
代码:
// from "/themes/genesis/lib/functions/layout.php"
<?php
/**
* Register default Genesis layouts.
*
* @package Genesis
*/
add_action(\'genesis_init\', \'genesis_create_initial_layouts\', 0);
/**
* Creates the initial layouts when the \'init\' action is fired
*
* @since 1.4
*/
function genesis_create_initial_layouts() {
genesis_register_layout( \'content-sidebar\', array(
\'label\' => __(\'Content-Sidebar\', \'genesis\'),
\'img\' => GENESIS_ADMIN_IMAGES_URL . \'/layouts/cs.gif\',
\'default\' => true
) );
genesis_register_layout( \'sidebar-content\', array(
\'label\' => __(\'Sidebar-Content\', \'genesis\'),
\'img\' => GENESIS_ADMIN_IMAGES_URL . \'/layouts/sc.gif\'
) );
genesis_register_layout( \'content-sidebar-sidebar\', array(
\'label\' => __(\'Content-Sidebar-Sidebar\', \'genesis\'),
\'img\' => GENESIS_ADMIN_IMAGES_URL . \'/layouts/css.gif\'
) );
genesis_register_layout( \'sidebar-sidebar-content\', array(
\'label\' => __(\'Sidebar-Sidebar-Content\', \'genesis\'),
\'img\' => GENESIS_ADMIN_IMAGES_URL . \'/layouts/ssc.gif\'
) );
genesis_register_layout( \'sidebar-content-sidebar\', array(
\'label\' => __(\'Sidebar-Content-Sidebar\', \'genesis\'),
\'img\' => GENESIS_ADMIN_IMAGES_URL . \'/layouts/scs.gif\'
) );
genesis_register_layout( \'full-width-content\', array(
\'label\' => __(\'Full Width Content\', \'genesis\'),
\'img\' => GENESIS_ADMIN_IMAGES_URL . \'/layouts/c.gif\',
) );
genesis_register_layout( \'modalwindow\', array(
\'label\' => __(\'Sizing Guide Layout\', \'genesis\'),
\'img\' => CHILD_URL . \'/images/stcsb.gif\',
) );
}
/**
* This function registers new layouts by modifying the global
* $_genesis_layouts variable.
*
* @since 1.4
*/
function genesis_register_layout( $id = \'\', $args = array() ) {
global $_genesis_layouts;
if ( !is_array( $_genesis_layouts ) )
$_genesis_layouts = array();
// Don\'t allow empty $id, or double registrations
if ( !$id || isset( $_genesis_layouts[$id] ) )
return false;
$defaults = array(
\'label\' => __( \'No Label Selected\', \'genesis\' ),
\'img\' => GENESIS_ADMIN_IMAGES_URL . \'/layouts/none.gif\',
);
$args = wp_parse_args( $args, $defaults );
$_genesis_layouts[$id] = $args;
return $args;
}
/**
* This function allows a user to identify a layout as being the default
* layout on a new install, as well as serve as the fallback layout.
*
* @since 1.4
*/
function genesis_set_default_layout( $id = \'\' ) {
global $_genesis_layouts;
if ( !is_array( $_genesis_layouts ) )
$_genesis_layouts = array();
// Don\'t allow empty $id, or double registrations
if ( !$id || !isset( $_genesis_layouts[$id] ) )
return false;
// remove default flag for all other layouts
foreach ( (array)$_genesis_layouts as $key => $value ) {
if ( isset( $_genesis_layouts[$key][\'default\'] ) ) {
unset( $_genesis_layouts[$key][\'default\'] );
}
}
$_genesis_layouts[$id][\'default\'] = true;
return $id;
}
/**
* This function unregisters layouts by modifying the global
* $_genesis_layouts variable.
*
* @since 1.4
*/
function genesis_unregister_layout( $id = \'\' ) {
global $_genesis_layouts;
if ( !$id || !isset( $_genesis_layouts[$id] ) )
return false;
unset( $_genesis_layouts[$id] );
return true;
}
/**
* This function returns all registered Genesis Layouts
*
* @since 1.4
*/
function genesis_get_layouts() {
global $_genesis_layouts;
if ( !is_array( $_genesis_layouts ) )
$_genesis_layouts = array();
return $_genesis_layouts;
}
/**
* This function returns the data from a single layout,
* specified by the $id passed to it.
*
* @since 1.4
*/
function genesis_get_layout( $id ) {
$layouts = genesis_get_layouts();
if ( !$id || !isset( $layouts[$id] ) )
return;
return $layouts[$id];
}
/**
* This function returns the layout that is set to default.
*
* @since 1.4
*/
function genesis_get_default_layout() {
global $_genesis_layouts;
$default = \'\';
foreach ( (array)$_genesis_layouts as $key => $value ) {
if ( isset( $value[\'default\'] ) && $value[\'default\'] ) {
$default = $key; break;
}
}
// return default layout, if exists
if ( $default ) {
return $default;
}
return \'nolayout\';
}
/**
* This function checks both the custom field and
* the theme option to find the user-selected site
* layout, and returns it.
*
* @since 0.2.2
*/
function genesis_site_layout() {
// If viewing a singular page/post
if ( is_singular() ) {
$custom_field = genesis_get_custom_field( \'_genesis_layout\' );
$site_layout = $custom_field ? $custom_field : genesis_get_option( \'site_layout\' );
}
// If viewing a taxonomy archive
elseif ( is_category() || is_tag() || is_tax() ) {
global $wp_query;
$term = $wp_query->get_queried_object();
$site_layout = $term && isset( $term->meta[\'layout\'] ) && $term->meta[\'layout\'] ? $term->meta[\'layout\'] : genesis_get_option( \'site_layout\' );
}
// If viewing an author archive
elseif( is_author() ) {
$site_layout = get_the_author_meta( \'layout\', (int)get_query_var(\'author\') ) ? get_the_author_meta( \'layout\', (int)get_query_var(\'author\') ) : genesis_get_option(\'site_layout\');
}
// else pull the theme option
else {
$site_layout = genesis_get_option( \'site_layout\' );
}
// Use default layout as a fallback, if necessary
if ( !genesis_get_layout( $site_layout ) ) {
$site_layout = genesis_get_default_layout();
}
return esc_attr( apply_filters( \'genesis_site_layout\', $site_layout ) );
}
/**
* A helper function that outputs the form elements necessary to select a layout.
*
* You must manually wrap this in an HTML element with the class of \'genesis-layout-selector\'
* in order for the CSS and Javascript to apply properly.
*
* @since 1.7
*/
function genesis_layout_selector( $args = array() ) {
/** Merge defaults with user args */
$args = wp_parse_args( $args, array(
\'name\' => \'\',
\'selected\' => \'\',
\'echo\' => true
) );
$output = \'\';
foreach ( genesis_get_layouts() as $id => $data ) {
$class = $id == $args[\'selected\'] ? \'selected\' : \'\';
$output .= sprintf( \'<label title="%1$s" class="box %2$s"><img src="%3$s" alt="%1$s" /><br /> <input type="radio" name="%4$s" id="%5$s" value="%5$s" %6$s /></label>\',
esc_attr( $data[\'label\'] ),
esc_attr( $class ),
esc_url( $data[\'img\'] ),
esc_attr( $args[\'name\'] ),
esc_attr( $id ),
checked( $id, $args[\'selected\'], false )
);
}
/** Echo or Return output */
if ( $args[\'echo\'] )
echo $output;
else
return $output;
}
/**
* A helper function to do the logic, and potentially echo/return a structural wrap div.
*
* @since 1.6
*/
function genesis_structural_wrap( $context = \'\', $output = \'<div class="wrap">\', $echo = true ) {
$genesis_structural_wraps = get_theme_support( \'genesis-structural-wraps\' );
if ( ! in_array( $context, (array) $genesis_structural_wraps[0] ) )
return \'\';
switch( $output ) {
case \'open\':
$output = \'<div class="wrap">\';
break;
case \'close\':
$output = \'</div><!-- end .wrap -->\';
break;
}
if ( $echo )
echo $output;
else
return $output;
}
/**
* Helper function for returning layout key \'content-sidebar\'.
*
* @since 1.7
*/
function __genesis_return_content_sidebar() {
return \'content-sidebar\';
}
/**
* Helper function for returning layout key \'sidebar-content\'.
*
* @since 1.7
*/
function __genesis_return_sidebar_content() {
return \'sidebar-content\';
}
/**
* Helper function for returning layout key \'content-sidebar-sidebar\'.
*
* @since 1.7
*/
function __genesis_return_content_sidebar_sidebar() {
return \'content-sidebar-sidebar\';
}
/**
* Helper function for returning layout key \'sidebar-sidebar-content\'.
*
* @since 1.7
*/
function __genesis_return_sidebar_sidebar_content() {
return \'sidebar-sidebar-content\';
}
/**
* Helper function for returning layout key \'sidebar-content-sidebar\'.
*
* @since 1.7
*/
function __genesis_return_sidebar_content_sidebar() {
return \'sidebar-content-sidebar\';
}
/**
* Helper function for returning layout key \'full-width-content\'.
*
* @since 1.7
*/
function __genesis_return_full_width_content() {
return \'full-width-content\';
}
/**
* Helper function for returning layout key \'modalwindow\'.
*
* @since 1.7
*/
function __genesis_return_modalwindow_content() {
return \'modalwindow\';
}