{"id":3505,"date":"2017-05-12T10:49:08","date_gmt":"2017-05-12T08:49:08","guid":{"rendered":"https:\/\/florianbrinkmann.com\/en\/?p=3505"},"modified":"2020-02-09T10:59:51","modified_gmt":"2020-02-09T09:59:51","slug":"modifying-an-existing-customizer-control","status":"publish","type":"post","link":"https:\/\/florianbrinkmann.com\/en\/modifying-an-existing-customizer-control-3505\/","title":{"rendered":"Modifying an existing customizer control"},"content":{"rendered":"\n<p>This post shows you how to modify an existing customizer control \u2014 helpful for the solution was <a href=\"https:\/\/gist.github.com\/pagelab\/10406104\">a Gist by Marcio Duarte<\/a>.<\/p>\n\n\n\n<p>In my case, I wanted to add an active_callback to the header image control to only show it if the user is on a static front page. To get this done, we only need one line of code:<\/p>\n\n\n<pre class=\"wp-block-code lang-php\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\">\/**\n * Set active callback for the header image control.\n *\/<\/span>\n$wp_customize-&gt;get_control( <span class=\"hljs-string\">'header_image'<\/span> )-&gt;active_callback = <span class=\"hljs-string\">'slug_is_static_front_page'<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>You can modify the other control properties accordingly \u2014 a few examples can be found in the above-linked Gist. For the sake of completeness here is the callback function:<\/p>\n\n\n<pre class=\"wp-block-code lang-php\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\">\/**\n * Check if we are on a static front page.\n *\n * <span class=\"hljs-doctag\">@param<\/span> WP_Customize_Control $control Control object.\n *\n * <span class=\"hljs-doctag\">@return<\/span> bool\n *\/<\/span>\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">slug_is_static_front_page<\/span><span class=\"hljs-params\">( $control )<\/span> <\/span>{\n\t<span class=\"hljs-comment\">\/**\n\t * Return true if is static front page.\n\t *\/<\/span>\n\t<span class=\"hljs-keyword\">if<\/span> ( is_front_page() &amp;&amp; is_page() ) {\n\t\t<span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">true<\/span>;\n\t} <span class=\"hljs-keyword\">else<\/span> {\n\t\t<span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">false<\/span>;\n\t}\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>","protected":false},"excerpt":{"rendered":"<p>This post shows you how to modify an existing customizer control \u2014 helpful for the solution was a Gist by Marcio Duarte. In my case, I wanted to add an active_callback to the header image control to only show it if the user is on a static front page. To get this done, we only [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wpf_show_in_dewp_planet_feed":false,"flobn_post_versions":"","webmentions_disabled_pings":false,"webmentions_disabled":false,"lazy_load_responsive_images_disabled":false,"footnotes":""},"categories":[115],"tags":[],"class_list":["post-3505","post","type-post","status-publish","format-standard","hentry","category-wordpress-snippets"],"wp-worthy-pixel":{"ignored":false,"public":null,"server":null,"url":null},"wp-worthy-type":"normal","_links":{"self":[{"href":"https:\/\/florianbrinkmann.com\/en\/wp-json\/wp\/v2\/posts\/3505","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/florianbrinkmann.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/florianbrinkmann.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/florianbrinkmann.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/florianbrinkmann.com\/en\/wp-json\/wp\/v2\/comments?post=3505"}],"version-history":[{"count":2,"href":"https:\/\/florianbrinkmann.com\/en\/wp-json\/wp\/v2\/posts\/3505\/revisions"}],"predecessor-version":[{"id":5890,"href":"https:\/\/florianbrinkmann.com\/en\/wp-json\/wp\/v2\/posts\/3505\/revisions\/5890"}],"wp:attachment":[{"href":"https:\/\/florianbrinkmann.com\/en\/wp-json\/wp\/v2\/media?parent=3505"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/florianbrinkmann.com\/en\/wp-json\/wp\/v2\/categories?post=3505"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/florianbrinkmann.com\/en\/wp-json\/wp\/v2\/tags?post=3505"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}