多个css正文类到特定页面的ID-这是可能的吗?

时间:2017-08-08 作者:Henry

这是我的挑战。。。

我有52页,需要一个全宽的背景图像,将通过渲染。css样式。。

所以,我将知道所有的页面ID号。我相信下面的代码是一种整洁的方式来完成我想要实现的目标。

我的问题是,与其有52个下面代码的实例,是否可以简单地放置所有页面ID和$classes 用逗号分隔的“css”的?

add_filter(\'body_class\',\'wpsites_specific_page_body_class\');
/**
* @author Brad Dalton - WP Sites
*
* @link http://wpsites.net/web-design/style-images-custom-body-class/
*/
function wpsites_specific_page_body_class($classes) {
 if(is_page(\'007\') ) {
    $classes[] = \'demo-class\';
return $classes;
   }
}
感谢您的指导。

4 个回复
最合适的回答,由SO网友:birgire 整理而成

我会考虑通过marking 使用post meta或自定义分类法的有问题的页面。这样,您就不需要更改PHP代码来选择哪些页面应该具有一些自定义外观。

下面是一个示例,如果我们用wpse-layout 具有值的自定义字段1 (假设可能有更多布局选项):

add_filter( \'body_class\', function( $classes )
{
    // Only target pages
    if( ! is_page() )
        return $classes;

    // Get the \'wpse_layout\' post meta value for the current page
    $layout = get_post_meta( get_queried_object_id(), \'wpse_layout\', true );

    if( empty( $layout ) )
        return $classes;

    // Inject the \'wpse-layout-1\' body class, 
    // if the custom field \'wpse-layout\' has the value 1
    $classes[] = sprintf( \'wpse-layout-%d\', $layout );

    return $classes;

} );
这可以通过各种方式进行进一步调整,例如使用一些自定义UI。

SO网友:Tom Webb

试试这个。

function wpsites_specific_page_body_class($classes) {
    global $post;
    $posts = [7=>\'demo-class\',8=>\'another-class\']
     if (array_key_exists($post->ID,$posts))
        $classes[] = $posts[$post->ID];
        return $classes;
     }
 }
您可以将任意数量的帖子添加到$posts数组中。它将设置分配给post id的类。

SO网友:Kanon Chowdhury

首先获取所有页面idclick here for more inforamtion

add_filter(\'body_class\',\'wpsites_specific_page_body_class\');
/**
* @author Brad Dalton - WP Sites
*
* @link http://wpsites.net/web-design/style-images-custom-body-class/
*/
function wpsites_specific_page_body_class($classes) {
  $page_ids= get_all_page_ids();
 if(is_page($page_ids) ) {
    $classes[] = \'demo-class\';
return $classes;
   }
}

SO网友:Johansson

我当然同意伯吉尔的答案,这是正确的方法。但既然您提出了要求,那么您想做的事情可以通过使用数组来完成。

将页面ID存储在数组中,然后执行条件:

$ids = array( \'1\', \'23\', \'53\', \'99\' ... \'1001\' );
if( is_page( $ids ) ) {
    // Your code here
}
Theis_page() 函数接受整数、字符串或数组。

结束

相关推荐

前端错误上的自定义管理栏css

我想将有效的自定义管理栏颜色方案应用于前端工具栏。我正在使用此代码执行此操作:add_action( \'wp_enqueue_scripts\', function () { wp_enqueue_style( \'color-admin-bar\', PATH_TO_CSS, array( \'admin-bar\' ) ); } ); 然而,它会导致一些奇怪的错误