{"id":70493,"date":"2017-06-21T20:08:42","date_gmt":"2017-06-21T20:08:42","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/custom-site-logo\/"},"modified":"2026-08-22T13:29:39","modified_gmt":"2026-08-22T13:29:39","slug":"custom-site-logo","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/custom-site-logo\/","author":14562407,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.0","stable_tag":"2.0.0","tested":"7.0.4","requires":"5.0","requires_php":"5.6","requires_plugins":null,"header_name":"Custom Site Logo","header_author":"Awais Altaf","header_description":"This is a plugin to show the custom logo in site header or any where.","assets_banners_color":"7297d2","last_updated":"2026-08-22 13:29:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/custom-site-logo\/","header_author_uri":"https:\/\/profiles.wordpress.org\/iticiti\/","rating":4.7,"author_block_rating":0,"active_installs":1000,"downloads":76050,"num_ratings":9,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"iticiti","date":"2023-05-26 18:35:17"},"1.0.1":{"tag":"1.0.1","author":"iticiti","date":"2023-05-26 19:27:16"},"1.0.2":{"tag":"1.0.2","author":"iticiti","date":"2023-06-08 21:20:35"},"1.0.3":{"tag":"1.0.3","author":"iticiti","date":"2026-08-14 11:42:14"},"1.2.0":{"tag":"1.2.0","author":"iticiti","date":"2026-08-15 14:41:03"},"2.0.0":{"tag":"2.0.0","author":"iticiti","date":"2026-08-22 13:29:39"}},"upgrade_notice":{"2.0.0":"<p>Major release. Place your logo without editing theme files, and add it to the login screen, admin bar and emails. New sticky, scheduled, conditional and per-language logos, plus preloading, structured data and a REST endpoint. Fixes garbled admin text and Customizer saves.<\/p>","1.2.0":"<p>Major feature release: block, widget, retina\/dark-mode\/mobile logos, SVG uploads, per-page overrides, Customizer live preview, export\/import, a tabbed and redesigned settings page, and a built-in Logo Maker.<\/p>"},"ratings":{"1":0,"2":1,"3":0,"4":0,"5":8},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2176415,"resolution":"128x128","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":2716448,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"custom-site-logo\/logo-block":{"name":"custom-site-logo\/logo-block","title":"Custom Site Logo"}},"tagged_versions":["1.0","1.0.1","1.0.2","1.0.3","1.2.0","2.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3648723,"resolution":"1","location":"assets","locale":"","width":2313,"height":1296},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3648720,"resolution":"2","location":"assets","locale":"","width":2305,"height":1294},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3648720,"resolution":"3","location":"assets","locale":"","width":2321,"height":1292},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3648720,"resolution":"4","location":"assets","locale":"","width":2316,"height":1293},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3648720,"resolution":"5","location":"assets","locale":"","width":2294,"height":1290},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3648720,"resolution":"6","location":"assets","locale":"","width":2307,"height":1290}},"screenshots":{"1":"The Logo Maker tab \u2014 type your site name, pick a font and colors, and generate a text logo without ever leaving the settings page.","2":"The General tab \u2014 upload or choose a logo, and optionally link it to a custom URL.","3":"The Size &amp; Layout tab \u2014 set a custom width\/height, center the logo, and make it responsive.","4":"The Hover Effect tab \u2014 pick a hover effect and preview it live.","5":"The Advanced Logos tab \u2014 configure retina\/@2x, dark-mode, and mobile logos.","6":"The Import\/Export tab \u2014 back up your settings as a JSON file, or restore them from one."}},"plugin_section":[],"plugin_tags":[26094,2982,3821,14171,162],"plugin_category":[43],"plugin_contributors":[142088],"plugin_business_model":[],"class_list":["post-70493","plugin","type-plugin","status-publish","hentry","plugin_tags-center-logo","plugin_tags-custom-logo","plugin_tags-logo","plugin_tags-logo-management","plugin_tags-widget","plugin_category-customization","plugin_contributors-iticiti","plugin_committers-iticiti"],"banners":{"banner":"https:\/\/ps.w.org\/custom-site-logo\/assets\/banner-772x250.png?rev=2716448","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/custom-site-logo\/assets\/icon-128x128.png?rev=2176415","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/custom-site-logo\/assets\/screenshot-1.png?rev=3648723","caption":"The Logo Maker tab \u2014 type your site name, pick a font and colors, and generate a text logo without ever leaving the settings page."},{"src":"https:\/\/ps.w.org\/custom-site-logo\/assets\/screenshot-2.png?rev=3648720","caption":"The General tab \u2014 upload or choose a logo, and optionally link it to a custom URL."},{"src":"https:\/\/ps.w.org\/custom-site-logo\/assets\/screenshot-3.png?rev=3648720","caption":"The Size &amp; Layout tab \u2014 set a custom width\/height, center the logo, and make it responsive."},{"src":"https:\/\/ps.w.org\/custom-site-logo\/assets\/screenshot-4.png?rev=3648720","caption":"The Hover Effect tab \u2014 pick a hover effect and preview it live."},{"src":"https:\/\/ps.w.org\/custom-site-logo\/assets\/screenshot-5.png?rev=3648720","caption":"The Advanced Logos tab \u2014 configure retina\/@2x, dark-mode, and mobile logos."},{"src":"https:\/\/ps.w.org\/custom-site-logo\/assets\/screenshot-6.png?rev=3648720","caption":"The Import\/Export tab \u2014 back up your settings as a JSON file, or restore them from one."}],"raw_content":"<!--section=description-->\n<p><strong>Custom Site Logo<\/strong> helps you manage your WordPress website's logo without editing a single line of code. Upload a new logo, or reuse one from your Media Library, then let the plugin place it wherever your site shows its branding \u2014 your theme's header, the login screen, the admin bar, even WooCommerce emails.<\/p>\n\n<p>If your theme already has a logo slot, switch on one option and the plugin fills it for you. If it doesn't, drop in a shortcode, a block, a widget, or a one-line template tag.<\/p>\n\n<h4>Put Your Logo Everywhere<\/h4>\n\n<ul>\n<li><strong>Your theme's own logo slot<\/strong> \u2014 switch on one option and the plugin fills the logo area your theme already has. No shortcode, no template editing.<\/li>\n<li><strong>A shortcode, block, widget or template tag<\/strong> \u2014 use <code>[csl_display_logo]<\/code> in any post or page, add the \"Custom Site Logo\" block, drag the widget into a sidebar, or call <code>csl_CustomSiteLogo_show_logo()<\/code> in your theme.<\/li>\n<li><strong>The login screen<\/strong> \u2014 replace the WordPress logo on wp-login.php with your own, at the width you choose.<\/li>\n<li><strong>The admin bar and dashboard footer<\/strong> \u2014 brand the admin for your clients.<\/li>\n<li><strong>WooCommerce emails<\/strong> \u2014 use your logo as the header image on order and account emails.<\/li>\n<li><strong>Printed pages<\/strong> \u2014 keep your logo (or a print-friendly version of it) on paper.<\/li>\n<\/ul>\n\n<h4>One Logo Per Situation<\/h4>\n\n<ul>\n<li><strong>Retina\/@2x<\/strong> \u2014 a high-resolution logo for crisp display on high-DPI screens.<\/li>\n<li><strong>Dark mode<\/strong> \u2014 an alternate logo shown automatically based on the visitor's OS\/browser colour scheme.<\/li>\n<li><strong>Mobile<\/strong> \u2014 a different logo for small screens, with a breakpoint you control.<\/li>\n<li><strong>Sticky\/shrink on scroll<\/strong> \u2014 scale the logo down as the visitor scrolls, and optionally swap in a compact version.<\/li>\n<li><strong>Scheduled<\/strong> \u2014 set a start and end date for a seasonal or campaign logo, and it swaps itself in and out.<\/li>\n<li><strong>Conditional<\/strong> \u2014 show a different logo based on post type, a specific page, category, user role, device, the front page, archives, search results, or whether the visitor is logged in.<\/li>\n<li><strong>Per language<\/strong> \u2014 assign a logo to each locale on a multilingual site.<\/li>\n<li><strong>Random rotation<\/strong> \u2014 cycle through a set of logos, one picked per page view.<\/li>\n<li><strong>Per page or post<\/strong> \u2014 override the logo on an individual page from the editor sidebar, retina, dark and mobile versions included.<\/li>\n<li><strong>Network-wide<\/strong> \u2014 set one default logo every site in a multisite network falls back to.<\/li>\n<\/ul>\n\n<h4>Speed, SEO and Accessibility<\/h4>\n\n<ul>\n<li><strong>No layout shift<\/strong> \u2014 width and height attributes are added automatically so the page doesn't jump while the logo loads.<\/li>\n<li><strong>Loads only what it needs<\/strong> \u2014 the hover-effect stylesheet is only enqueued when you actually pick a hover effect, and the script only when sticky mode or click tracking is on.<\/li>\n<li><strong>Optional preloading<\/strong> \u2014 hint to the browser to fetch your logo early, for a faster Largest Contentful Paint.<\/li>\n<li><strong>Optional lazy loading<\/strong> \u2014 for logos that sit below the fold.<\/li>\n<li><strong>Structured data<\/strong> \u2014 output Organization JSON-LD so search engines can associate the logo with your site.<\/li>\n<li><strong>Accessibility and link control<\/strong> \u2014 set your own alt text, title and ARIA label, open the link in a new tab, add <code>nofollow<\/code>, or turn the link off entirely.<\/li>\n<\/ul>\n\n<h4>For Developers<\/h4>\n\n<ul>\n<li><strong>REST API<\/strong> \u2014 <code>GET \/wp-json\/custom-site-logo\/v1\/logo<\/code> returns the resolved logo, its variants, dimensions and markup, ready for a headless front end.<\/li>\n<li><strong>Filters<\/strong> \u2014 <code>custom_site_logo_settings<\/code>, <code>custom_site_logo_resolved_image<\/code>, <code>custom_site_logo_markup<\/code> and <code>custom_site_logo_structured_data<\/code> let you change what is resolved and rendered.<\/li>\n<li><strong>One renderer<\/strong> \u2014 the shortcode, block, widget and template tag all render through a single class, so output never drifts between them.<\/li>\n<\/ul>\n\n<h4>Getting Started<\/h4>\n\n<ul>\n<li><strong>Built-in Logo Maker<\/strong> \u2014 no logo yet? Type your site name, pick a font and colours, and generate a simple text logo right on the settings page. It's uploaded to your Media Library and set as your logo automatically.<\/li>\n<li><strong>SVG support<\/strong> \u2014 upload SVG logos alongside raster images, with basic upload sanitization.<\/li>\n<li><strong>Live preview in the Customizer<\/strong> \u2014 configure and preview from Appearance \u00bb Customize.<\/li>\n<li><strong>Export, import and reset<\/strong> \u2014 back up your configuration as a JSON file, move it to another site, or return everything to defaults.<\/li>\n<li><strong>Click tracking<\/strong> \u2014 see how often your logo is clicked, with an optional Google Analytics event.<\/li>\n<\/ul>\n\n<h4>How to Use It<\/h4>\n\n<p>The quickest route needs no code at all: go to Appearance \u00bb Custom Site Logo, upload your logo on the <strong>General<\/strong> tab, then switch on <strong>\"Replace the theme's logo\"<\/strong> on the <strong>Display Locations<\/strong> tab. If your theme has a logo area, your logo appears in it.<\/p>\n\n<p>If your theme has no logo area, you have four options:<\/p>\n\n<ol>\n<li>Add the <code>[csl_display_logo]<\/code> shortcode to any post or page.<\/li>\n<li>Add the \"Custom Site Logo\" block in the block editor.<\/li>\n<li>Drag the \"Custom Site Logo\" widget into a widget area.<\/li>\n<li>Open your theme's <code>header.php<\/code> and paste <code>&lt;?php echo csl_CustomSiteLogo_show_logo(); ?&gt;<\/code> where you want the logo.<\/li>\n<\/ol>\n\n<p>If you run into any issues setting up the plugin, please reach out via the <a href=\"https:\/\/wordpress.org\/support\/plugin\/custom-site-logo\/\">support forum<\/a>.<\/p>\n\n<!--section=installation-->\n<h4>From your WordPress dashboard<\/h4>\n\n<ol>\n<li>Go to Plugins \u00bb Add New.<\/li>\n<li>Search for \"Custom Site Logo\".<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Go to Appearance \u00bb Custom Site Logo to upload your logo and configure it, or Appearance \u00bb Customize for a live preview.<\/li>\n<\/ol>\n\n<h4>Manual installation<\/h4>\n\n<ol>\n<li>Upload the <code>custom-site-logo<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the \"Plugins\" menu in WordPress.<\/li>\n<li>Go to Appearance \u00bb Custom Site Logo to upload your logo and configure it.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20have%20to%20edit%20my%20theme%20files%3F\"><h3>Do I have to edit my theme files?<\/h3><\/dt>\n<dd><p>No. Upload your logo, then turn on \"Replace the theme's logo\" on the Display Locations tab. The plugin fills the logo area your theme already has. Editing <code>header.php<\/code> is only needed if your theme has no logo area at all.<\/p><\/dd>\n<dt id=\"how%20do%20i%20insert%20the%20logo%20manually%3F\"><h3>How do I insert the logo manually?<\/h3><\/dt>\n<dd><p>Use the <code>[csl_display_logo]<\/code> shortcode in any post or page, add the \"Custom Site Logo\" block in the block editor, drag the \"Custom Site Logo\" widget into a widget area, or paste <code>&lt;?php echo csl_CustomSiteLogo_show_logo(); ?&gt;<\/code> into your theme's <code>header.php<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20use%20a%20different%20logo%20on%20a%20specific%20page%3F\"><h3>Can I use a different logo on a specific page?<\/h3><\/dt>\n<dd><p>Yes. Edit the page or post and use the \"Custom Site Logo\" box in the sidebar to pick an override logo for that page only. You can set retina, dark-mode and mobile versions of the override too.<\/p><\/dd>\n<dt id=\"does%20it%20support%20retina%20screens%20and%20dark%20mode%3F\"><h3>Does it support retina screens and dark mode?<\/h3><\/dt>\n<dd><p>Yes. On the Advanced Logos tab you can upload a retina\/@2x logo, a dark-mode logo and a mobile logo. Each is shown automatically under the right conditions \u2014 the dark-mode logo follows the visitor's own OS or browser colour scheme preference.<\/p><\/dd>\n<dt id=\"can%20i%20replace%20the%20wordpress%20logo%20on%20the%20login%20screen%3F\"><h3>Can I replace the WordPress logo on the login screen?<\/h3><\/dt>\n<dd><p>Yes. Turn on the login logo on the Display Locations tab, choose an image, and set the width you want. The same tab also covers the admin bar, the dashboard footer, WooCommerce emails and printed pages.<\/p><\/dd>\n<dt id=\"can%20the%20logo%20shrink%20when%20visitors%20scroll%3F\"><h3>Can the logo shrink when visitors scroll?<\/h3><\/dt>\n<dd><p>Yes. Turn on the sticky logo on the Sticky Logo tab. You can set how far down the page the effect starts, how much the logo scales down, and optionally a separate compact logo to swap in.<\/p><\/dd>\n<dt id=\"can%20i%20schedule%20a%20seasonal%20or%20campaign%20logo%3F\"><h3>Can I schedule a seasonal or campaign logo?<\/h3><\/dt>\n<dd><p>Yes. On the Conditional Rules tab, add a schedule with a start date, an end date and an image. The plugin swaps that logo in and out for you, so you don't have to remember to change it back.<\/p><\/dd>\n<dt id=\"can%20i%20show%20a%20different%20logo%20on%20different%20pages%3F\"><h3>Can I show a different logo on different pages?<\/h3><\/dt>\n<dd><p>Yes. On the Conditional Rules tab you can add rules based on post type, a specific post or page ID, category, user role, device, the front page, archives, search results, or whether the visitor is logged in. The first matching rule wins.<\/p><\/dd>\n<dt id=\"can%20i%20use%20a%20different%20logo%20per%20language%3F\"><h3>Can I use a different logo per language?<\/h3><\/dt>\n<dd><p>Yes. Add one row per locale on the Conditional Rules tab. The plugin matches against the locale WordPress has determined for the current request, so it works alongside the usual multilingual plugins.<\/p><\/dd>\n<dt id=\"why%20does%20my%20logo%20look%20too%20big%3F\"><h3>Why does my logo look too big?<\/h3><\/dt>\n<dd><p>Uncheck \"Make Logo Responsive\" on the Size &amp; Layout tab, or set a custom width and\/or height for your logo.<\/p><\/dd>\n<dt id=\"will%20this%20slow%20my%20site%20down%3F\"><h3>Will this slow my site down?<\/h3><\/dt>\n<dd><p>The plugin is built to add as little as possible. The hover-effect stylesheet is only loaded when you actually choose a hover effect, and the JavaScript file is only loaded when sticky mode or click tracking is switched on. If you use neither, no extra CSS or JS is added to your pages at all.<\/p><\/dd>\n<dt id=\"does%20it%20help%20or%20hurt%20core%20web%20vitals%3F\"><h3>Does it help or hurt Core Web Vitals?<\/h3><\/dt>\n<dd><p>It should help. Width and height attributes are added to the logo automatically, which prevents the layout shift (CLS) that an unsized image causes. You can also preload the logo to improve Largest Contentful Paint, or lazy-load it if it sits below the fold.<\/p><\/dd>\n<dt id=\"does%20the%20click%20tracking%20collect%20personal%20data%3F\"><h3>Does the click tracking collect personal data?<\/h3><\/dt>\n<dd><p>No. Only a daily count of clicks is stored. To stop the endpoint being spammed, a visitor's IP address and user agent are combined into a hash that lives in a temporary 60-second cache \u2014 the address itself is never written to your database. Click tracking is off by default. If you also enable the Google Analytics event, that data goes to Google under your own Analytics configuration.<\/p><\/dd>\n<dt id=\"is%20uploading%20svg%20logos%20safe%3F\"><h3>Is uploading SVG logos safe?<\/h3><\/dt>\n<dd><p>SVG upload is limited to users who can already change your plugin settings, and uploaded files are passed through a sanitizer that strips <code>&lt;script&gt;<\/code> tags and inline event-handler attributes. As with any SVG upload, only use files you trust.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20multisite%3F\"><h3>Does it work on multisite?<\/h3><\/dt>\n<dd><p>Yes. A network administrator can set one network-wide default logo, which any site in the network can fall back to, and each site can still override it with its own.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20with%20a%20headless%20or%20react%20front%20end%3F\"><h3>Can I use this with a headless or React front end?<\/h3><\/dt>\n<dd><p>Yes. <code>GET \/wp-json\/custom-site-logo\/v1\/logo<\/code> returns the resolved logo URL, its retina, dark and mobile variants, its dimensions and the rendered markup, with all of your conditional rules already applied.<\/p><\/dd>\n<dt id=\"where%20is%20the%20settings%20page%3F\"><h3>Where is the settings page?<\/h3><\/dt>\n<dd><p>Go to Appearance \u00bb Custom Site Logo. You can also configure and preview your logo live from Appearance \u00bb Customize.<\/p><\/dd>\n<dt id=\"can%20i%20back%20up%20or%20transfer%20my%20settings%3F\"><h3>Can I back up or transfer my settings?<\/h3><\/dt>\n<dd><p>Yes. Use the Import\/Export tab to download your configuration as a JSON file and import it on this site or another one. The same tab has a Reset button that returns every setting to its default.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20settings%20if%20i%20delete%20the%20plugin%3F\"><h3>What happens to my settings if I delete the plugin?<\/h3><\/dt>\n<dd><p>Deleting the plugin removes its settings, click statistics and per-page logo overrides. Your logo images stay in your Media Library, because they belong to your site rather than to the plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<p>Release Date: August 22nd, 2026<\/p>\n\n<p>New features:<\/p>\n\n<ul>\n<li>Added an option to fill your theme's own logo slot, so the logo can be placed without a shortcode or any template editing.<\/li>\n<li>Added a logo for the login screen, with a configurable width.<\/li>\n<li>Added a logo for the admin bar and the dashboard footer.<\/li>\n<li>Added a logo for WooCommerce transactional emails.<\/li>\n<li>Added a print stylesheet, with the option of a separate print-friendly logo.<\/li>\n<li>Added a sticky logo that scales down as the visitor scrolls, with an optional compact logo to swap in.<\/li>\n<li>Added scheduled logos: give a logo a start and end date and it swaps itself in and out.<\/li>\n<li>Added conditional logo rules based on post type, post\/page ID, category, user role, device, the front page, archives, search results, and whether the visitor is logged in.<\/li>\n<li>Added per-language logos, matched against the locale determined for the current request.<\/li>\n<li>Added random logo rotation across a set of images, with one picked per page view.<\/li>\n<li>Added a network-wide default logo for multisite, which individual sites can opt into and still override.<\/li>\n<li>Added custom alt text, title and ARIA label fields, plus options to open the logo link in a new tab, mark it <code>nofollow<\/code>, or remove the link entirely.<\/li>\n<li>Added automatic width and height attributes to prevent layout shift, with the resolved dimensions cached.<\/li>\n<li>Added optional preloading (with <code>fetchpriority<\/code>) and optional lazy loading.<\/li>\n<li>Added optional Organization JSON-LD structured data.<\/li>\n<li>Added optional logo click tracking, with a stats panel on the settings page and a Google Analytics event.<\/li>\n<li>Added a REST endpoint, <code>GET \/wp-json\/custom-site-logo\/v1\/logo<\/code>, returning the resolved logo, its variants, dimensions and markup for headless front ends.<\/li>\n<li>Added retina, dark-mode and mobile versions to the per-page\/post logo override.<\/li>\n<li>Added a logo version selector to the block, along with Dark, Compact and Retina block variations and support for alignment, anchors and spacing.<\/li>\n<li>Added a Reset button that returns every setting to its default.<\/li>\n<li>Added a welcome notice that points first-time users at the two things worth doing first.<\/li>\n<li>Added the <code>custom_site_logo_settings<\/code>, <code>custom_site_logo_resolved_image<\/code>, <code>custom_site_logo_markup<\/code> and <code>custom_site_logo_structured_data<\/code> filters.<\/li>\n<\/ul>\n\n<p>Updates:<\/p>\n\n<ul>\n<li>Rebuilt the settings page navigation as a vertical sidebar. The old horizontal tabs had run out of room and were wrapping onto a second row and overlapping the page content.<\/li>\n<li>Added Sticky Logo, Display Locations, Conditional Rules and SEO &amp; Performance tabs, and collapsed the introductory help text so it no longer pushes the settings down the page.<\/li>\n<li>The hover-effect stylesheet is now only loaded when a hover effect is actually selected, and the front-end script only when sticky mode or click tracking is enabled. Sites using neither now load no extra CSS or JavaScript.<\/li>\n<li>Every setting is now declared in one place, with a single default and sanitizer, which the settings page, the Customizer, and the import routine all share.<\/li>\n<li>Imported settings files are now sanitized through the same whitelist the settings form uses, so an import can no longer introduce an unknown key or an unexpected value.<\/li>\n<li>Raised the minimum supported WordPress version to 5.0.<\/li>\n<\/ul>\n\n<p>Bugfixes:<\/p>\n\n<ul>\n<li>Fixed garbled characters in several admin labels and descriptions, where the \"\u00bb\" separator in menu paths such as \"Appearance \u00bb Customize\" displayed as unreadable symbols. Those strings were double-encoded in the previous release.<\/li>\n<li>Fixed saving from the Customizer being able to silently switch features off, because settings absent from the Customizer's payload were treated as disabled rather than left alone.<\/li>\n<li>Fixed random logo rotation picking a different image for each place the logo appeared on a page; one image is now chosen per request.<\/li>\n<li>Fixed per-page logo overrides dropping the retina, dark-mode and mobile versions.<\/li>\n<li>Fixed the logo linking to <code>#<\/code> when no custom URL was set; it now links to your home page.<\/li>\n<li>Fixed the \"no logo uploaded\" notice being visible to visitors instead of only to administrators.<\/li>\n<li>Fixed the Media Library button not working on the newer image fields.<\/li>\n<li>Fixed the settings form refusing to save when the main logo field was left empty, which made the other tabs impossible to configure first.<\/li>\n<li>Rate-limited the click-tracking endpoint so it cannot be used to write to the database repeatedly.<\/li>\n<li>Resolved all PHPCS (WordPress Coding Standards) reported issues across the codebase, and added the plugin's ruleset so the standard is reproducible.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<p>Release Date: August 15th, 2026<\/p>\n\n<p>New features:<\/p>\n\n<ul>\n<li>Added a \"Custom Site Logo\" block for the block editor, with a live preview.<\/li>\n<li>Added a \"Custom Site Logo\" classic widget.<\/li>\n<li>Added retina\/@2x logo support.<\/li>\n<li>Added an alternate dark-mode logo, shown automatically based on the visitor's OS\/browser preference.<\/li>\n<li>Added an alternate mobile logo with a configurable breakpoint.<\/li>\n<li>Added SVG logo upload support with basic sanitization.<\/li>\n<li>Added a per-page\/post logo override meta box.<\/li>\n<li>Added a live-preview Customizer section (Appearance \u00bb Customize).<\/li>\n<li>Added settings export\/import (as a JSON file).<\/li>\n<li>Added a \"Logo Maker\" tab: no logo yet? Type your site name, pick a font and colors, and generate a text logo right on the settings page. It's uploaded to your Media Library and set as your logo automatically.<\/li>\n<\/ul>\n\n<p>Updates:<\/p>\n\n<ul>\n<li>Reorganized the settings page into tabs (General, Size &amp; Layout, Hover Effect, Advanced Logos, Import\/Export) for easier navigation. The active tab is remembered between visits.<\/li>\n<li>Redesigned the settings page with a proper page header, thumbnail previews next to every logo field (with a one-click \"Remove\"), modern on\/off toggle switches for checkbox options, and a two-card layout for Import\/Export.<\/li>\n<li>Shrunk the oversized hover-effect preview image on the settings page.<\/li>\n<\/ul>\n\n<p>Bugfixes:<\/p>\n\n<ul>\n<li>Fixed the \"no logo uploaded\" notice incorrectly appearing on every page\/request; it is now only shown where the logo is actually rendered.<\/li>\n<li>Fixed a fatal error (<code>TypeError<\/code> in <code>WP_List_Table::row_actions()<\/code>) on the Plugins page caused by the \"Settings\" action link filter.<\/li>\n<li>Fixed the Media Library upload button being broken on other admin screens due to an unnecessary, globally-loaded Thickbox stylesheet.<\/li>\n<li>Fixed the logo image field silently storing the literal placeholder text \"Select Logo\" as its value when no logo was chosen.<\/li>\n<li>Fixed the \"Save Settings\" button showing on the Import\/Export tab, where it didn't apply.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<p>Release Date: August 14th, 2026<\/p>\n\n<p>Updates:<\/p>\n\n<ul>\n<li>Resolved all PHPCS (WordPress Coding Standards) reported issues across the codebase.<\/li>\n<li>Escaped all admin and front-end output, and added a nonce-safe check around the settings-saved notice.<\/li>\n<li>Fixed the <code>[csl_display_logo]<\/code> shortcode to correctly return its markup instead of echoing it directly.<\/li>\n<li>Added an <code>alt<\/code> attribute to the rendered logo image for better accessibility.<\/li>\n<li>Clarified and improved the wording of settings page labels, descriptions, and messages.<\/li>\n<li>Corrected a translation domain mismatch on the plugin's \"Settings\" action link.<\/li>\n<li>Updated \"Tested up to\" to the latest WordPress version.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<p>Release Date: May 09th, 2023<\/p>\n\n<p>Bugfixes:<\/p>\n\n<ul>\n<li>Fixes PHP Function.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<p>Release Date: May 25th, 2023<\/p>\n\n<p>Bugfixes:<\/p>\n\n<ul>\n<li>Fixes PHP warnings.<\/li>\n<\/ul>\n\n<p>Updates:<\/p>\n\n<p>Update the code standards.<\/p>","raw_excerpt":"Show your logo anywhere: theme header, login screen, admin bar and emails. Retina, dark mode, mobile, sticky, scheduled and per-page logos.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/70493","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=70493"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/iticiti"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=70493"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=70493"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=70493"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=70493"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=70493"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=70493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}