I am stuck at add_custom_background
.
I can change background color/image but I only want to change my index page. Currently, the changes apply on the whole page.
I want to make the changes from WP-admin.
How can I specify it to a specific page ?
Edit:
I just checked im running 3.3.1. So my version is not supported to use add_theme_support( 'custom-background' );
instead I want to use add_custom_background.
if ( is_front_page() )
{
add_custom_background();
}
Cant get it to work.
I am stuck at add_custom_background
.
I can change background color/image but I only want to change my index page. Currently, the changes apply on the whole page.
I want to make the changes from WP-admin.
How can I specify it to a specific page ?
Edit:
I just checked im running 3.3.1. So my version is not supported to use add_theme_support( 'custom-background' );
instead I want to use add_custom_background.
if ( is_front_page() )
{
add_custom_background();
}
Cant get it to work.
Share Improve this question edited Oct 17, 2012 at 12:08 M3o asked Oct 8, 2012 at 10:40 M3oM3o 4451 gold badge6 silver badges18 bronze badges 4- That is what it's supposed to do. For what you want, you'll have to "hack" the theme to do that and then add custom options in the admin. – Miha Rekar Commented Oct 8, 2012 at 11:36
- So what do you suggest that i do in this case ? Is there any other plugin i could use ? – M3o Commented Oct 8, 2012 at 12:21
- As I said - "hack" the theme. I almost never trust plugins, so I would write it myself, but yeah, there could be a plugin for that :P – Miha Rekar Commented Oct 8, 2012 at 12:22
- any suggestion ? :P – M3o Commented Oct 17, 2012 at 11:48
2 Answers
Reset to default 4You can check in your callback function if you are an the front page.
Sample code for the theme’s functions.php
:
add_action( 'after_setup_theme', 'wpse_67480_theme_setup' );
function wpse_67480_theme_setup()
{
$bg_options = array (
'wp-head-callback' => 'wpse_67480_background_frontend',
'default-color' => 'f0f0f0',
'default-image' => '',
);
add_theme_support( 'custom-background', $bg_options );
add_theme_support(
'custom-header',
array (
'width' => 960,
'height' => 200,
'flex-height' => TRUE,
'flex-width' => TRUE,
'header-text' => FALSE,
'wp-head-callback' => 'wpse_67480_header_frontend',
)
);
}
wpse_67480_background_frontend()
{
if ( is_front_page() )
{
_custom_background_cb();
}
}
wpse_67480_header_frontend()
{
if ( ! is_front_page() )
{
return;
}
// create your header code here
}
You can use the body class and define your background in your style.css
Example: background for frontpage:
body.home { background: #eee; }
background for pages
body.page { background: #ccc; }
background for archive pages
body.archive { background ... }
and so on. Just check your source code for the body class of the site you want to address.
If your background is for another element but body you can add the body class in front of it:
body.home .wrapper { background ... }