I have a wordpress theme, but I use this single installation for 2 domains. Both domains point to the same installtion.
Now, I want to use jQuery, based on the domain name in the address bar, to change the color scheme of the WP Site.
Now, in the WP-dashboard, you can change the color of the theme. Now this interface where you can choose the theme color, is defined in the follwing code inside a rt_styling_options.php file:
array(
"name" => __("Theme Style",'rt_theme_admin'),
"desc" => __("Please choose a style for your theme.",'rt_theme_admin'),
"id" => THEMESLUG."_17_style",
"options" => array(
"blue" => "Blue Style",
"purple" => "Purple Style",
"orange" => "Orange Style",
"brown" => "Brown Style",
"rose" => "Rose Style",
"green" => "Green Style",
"grey" => "Grey Style",
"gold" => "Gold Style",
),
"default" => "blue",
"type" => "select"),
Here is a screenshot of the WP-Dashboard where you can choose this color:
Question:
How do I change the value of that color based on the domain name in the address bar?
It will go something like this:
var pathname = window.location.pathname;
if (pathname == 'domain2.com'){
change the value of the theme color
}
Additonal Info (important):
Here is the php file (theme.php) and relevant function where this color value above is called into: ( see if(get_option(THEMESLUG.”_17_style”)){ )
function load_styles(){
wp_register_style('theme-reset', THEMEURI . '/css/rt-css-framework.css', 1 , false, 'all');
wp_register_style('theme-style-all',THEMEURI . '/css/style.css', 2 , false, 'all');
if(get_option(THEMESLUG."_17_style")){
wp_register_style('theme-skin',THEMEURI . '/css/'.get_option( THEMESLUG."_17_style").'-style.css', 3 , false, 'all'); //dark skin
}
wp_register_style('prettyPhoto',THEMEURI . '/css/prettyPhoto.css', 5 , false, 'screen');
if(get_option(THEMESLUG."_font_face")){
wp_register_style('rtfontface',THEMEURI . '/css/fontface.css', 100 , false, 'all');
}
wp_enqueue_style('theme-reset');
wp_enqueue_style('theme-style-all');
wp_enqueue_style('rtfontface');
wp_enqueue_style('prettyPhoto');
wp_enqueue_style('jquery-colortip', THEMEURI . '/css/colortip-1.0-jquery.css');
wp_enqueue_style('jquery-jcarousel', THEMEURI . '/css/jcarousel.css');
wp_enqueue_style('jquery-flexslider', THEMEURI . '/css/flexslider.css');
wp_enqueue_style('jquery-nivoslider', THEMEURI . '/css/nivo-slider.css');
wp_enqueue_style('jquery-nivoslider-theme', THEMEURI . '/css/nivo-default/default.css');
wp_enqueue_style('theme-skin');
wp_register_style('theme-ie7',THEMEURI . '/css/ie7.css', 6 , false, 'screen');
$GLOBALS['wp_styles']->add_data( 'theme-ie7', 'conditional', 'IE 7' );
wp_enqueue_style('theme-ie7');
wp_register_style('theme-ie8',THEMEURI . '/css/ie8.css', 6 , false, 'screen');
$GLOBALS['wp_styles']->add_data( 'theme-ie8', 'conditional', 'IE 8' );
wp_enqueue_style('theme-ie8');
wp_register_style('theme-style',get_bloginfo( 'stylesheet_url' ), 4 , false, 'all'); //WP default stylesheet
wp_enqueue_style('theme-style');
if (class_exists( 'Woocommerce' ) ) { //woocommerce style for rt-theme
global $woocommerce, $suffix;
wp_enqueue_style( 'rt-woocommerce-styles', THEMEURI.'/rt-woocommerce/woocommerce.css');
}
}
UPDATE: @Patrick
â¢Changes in theme.php
$themeId = "";
$pathname = get_site_url();
if($pathname == 'domain2.com')
$themeId = THEMESLUG."_17_style2";
else
$themeId = THEMESLUG."_17_style";
wp_register_style('theme-skin',THEMEURI . '/css/'.get_option($themeId).'-style.css', 3 , false, 'all');
NOTE: I removed this from the original theme.php file:
if(get_option(THEMESLUG."_17_style")){ .....}
â¢Changes in rt_styling_options.php: just added the following right after the first set, as you specified
array(
"name" => __("Theme Style",'rt_theme_admin'),
"desc" => __("Please choose a style for your theme.",'rt_theme_admin'),
"id" => THEMESLUG."_17_style2",
"options" => array(
"blue" => "Blue Style",
"purple" => "Purple Style",
"orange" => "Orange Style",
"brown" => "Brown Style",
"rose" => "Rose Style",
"green" => "Green Style",
"grey" => "Grey Style",
"gold" => "Gold Style",
),
"default" => "gold",
"type" => "select"),
You definitely can’t change those WordPress PHP array values with JQuery. (JQuery is client side while PHP is server side).
What you can do instead is use JQuery to target the CSS and HTML elements based on the URL Path name… This won’t be easy though because you’ll have to take into consideration all the elements affected by the theme.
OR, you’ll have to use PHP to do all the logic between switching themes based on the URL Path.
Looks like you can use
<?php get_site_url(); ?>
to get the URL Path with PHP in WordPress. See more here: http://codex.wordpress.org/Function_Reference/get_site_urlUpdate
It seems like you can change your current theme by making direct calls to the wordpress SQL database:
option_value
is where you would put your theme name.Sources:
http://designgala.com/how-to-change-wordpress-theme-directly-from-database/
http://www.wprecipes.com/wordpress-trick-change-theme-programatically
Also there are the
switch_theme
andupdate_option
functions from WordPress.Similar to the above SQL queries, you can use
update_option
to update your theme like:http://codex.wordpress.org/Function_Reference/switch_theme
http://codex.wordpress.org/Function_Reference/update_option
Modify the template to have more then one color option, give each a unique id
And then in theme.php