Post/Page Specific Custom Code

Plugin Banner

Post/Page Specific Custom Code

by Łukasz Nowicki

Download
Description

Post/Page Specific Custom Code lets you add custom CSS to individual posts, pages, or WooCommerce products. A dedicated box on the edit screen is where you write your CSS. You can also choose whether it should load only on the single view or on archive-style views as well.

The meta box appears below the content editor for posts, pages, and products. Enter your CSS there and decide whether it applies only on the single view or also on archive-style views (blog/category listings, the WooCommerce shop and product categories/tags). Product CSS also loads on a best-effort basis for products rendered through standard WooCommerce loop templates outside the main query (for example the [products] shortcode). CSS discovered only after the page head may be printed in the footer. Custom product markup that skips WooCommerce templates needs a small integration hook. Products injected only via AJAX or infinite scroll are not covered.

CSS fields use a code editor with syntax highlighting by default. You can turn highlighting off with a filter if you prefer a plain textarea (for example on slower machines).

Requirements

This plugin requires WordPress 5.0 or later (please keep WordPress up to date) and PHP 7.4 or later on your server.

Automatic installation

Automatic installation is the easiest option. Log in to your WordPress admin, go to Plugins, and click Add New.

Search for Post/Page Specific Custom Code, then click Install Now.

Manual installation

  1. Download the plugin ZIP from WordPress.org (or from this repository).
  2. Upload the postpage-specific-custom-css folder to the /wp-content/plugins/ directory (so the main plugin file is at /wp-content/plugins/postpage-specific-custom-css/post-page-specific-custom-css.php).
  3. Activate the plugin through the Plugins menu in WordPress.
  4. That’s it — enjoy!
  1. If you do not see the Custom Code panel, open Screen Options and make sure "Custom Code" is checked.

    If you do not see the Custom Code panel, open Screen Options and make sure “Custom Code” is checked.

  2. Enter CSS that applies to your post, page, or product. You can limit it to the single view only.

    Enter CSS that applies to your post, page, or product. You can limit it to the single view only.

  3. Plugin settings screen.

    Plugin settings screen.

Is it free?

Yes. It is licensed under GPLv2 (or later). If you would like to support the work, you are welcome to donate — thank you!

How do I disable CSS code highlighting in the editor?

Highlighting is on by default. To use a plain textarea instead, add this to your theme’s functions.php or a small custom plugin:

add_filter( 'postpage_sccss-highlight_code', '__return_false' );

This affects the Custom Code box on posts, pages, and products, and the default CSS fields on the plugin settings screen. Disabling highlighting uses a plain textarea. On posts, pages, and products, automatic syntax checking still runs for that textarea; the default CSS fields on the plugin settings screen do not have syntax checking.

How do I load product CSS for a custom product loop?

If your theme or plugin renders products with the standard WooCommerce templates (wc_product_class() / content-product.php), registration is automatic. If you output your own HTML, register the product before rendering it:

do_action( 'postpage_sccss_register_product', $product_id );

You may pass a product ID, a WP_Post, or a WC_Product instance.

Spam message asking for money

By brandoncollins on May 3, 2024

Be warned! This plugin is a sneaky scam. Out of nowhere, a giant info box shoves a payment message in your face on the WordPress admin page. It’s clear the developer has no clue about user experience, and leaving their code on your site is a recipe for disaster.

Spammy plugin

By crissman on May 1, 2024

Uninstalled. Spams the WP Admin page with money begs.

A bit buggy

By revixi5 on February 4, 2024

The CSS metabox has a spinner that continuously spin, and the CSS is now inject inside the BODY content of the page instead of the HEAD… probably another bug. Had to switch to Simple CSS. It inject the code in the header and minify it.

A very useful plugin

By Victor Tyavbee (tsquare07) on May 3, 2023

The plugin is very useful

Such a handy plugin!

By jjminkle on May 2, 2023

I am surprised this plugin is not more popular. It is a great way to add a little CSS to a page. Sometimes I just find it handy when I want to test CSS before adding it to my main stylesheet. Especially if I want to show someone global page changes before actually doing them globally.

Gets the CSS displayed

By jmlord on January 6, 2023

Hi!

Great plugin, exactly what I was looking for.

On my version (6.1.1) the CSS validation fails due to line 679 (there is no data object in wp object).
const ppsccEditPost = wp.data.select('core/edit-post');

Otherwise the CSS saves and displays correctly.

It was very nice but today it crashed my site

By conman (normaldenker) on July 1, 2022

Hi there, I really loved your plugin but after installing WP 6.0 (PHP 7.4, WPML and TOTAL theme as Template) it crashed my site. Something caued a 500 error -> post-page-specific-custom-css.php on line 519 This is the debug information (XXXX for security reason):
[01-Jul-2022 11:48:39 UTC] PHP Fatal error:  Uncaught TypeError: Argument 1 passed to Phylax\WPPlugin\PPCustomCSS\Plugin::the_content() must be of the type string, null given, called in /XXXXXXXXXXXXX/wordpress/wp-includes/class-wp-hook.php on line 307 and defined in /XXXXXXXXXXXXX/wordpress/wp-content/plugins/postpage-specific-custom-css/post-page-specific-custom-css.php:519
Stack trace:
#0 /XXXXXXXXXXXXX/wordpress/wp-includes/class-wp-hook.php(307): Phylax\WPPlugin\PPCustomCSS\Plugin->the_content(NULL)
#1 /XXXXXXXXXXXXX/wordpress/wp-includes/plugin.php(191): WP_Hook->apply_filters(NULL, Array)
#2 /XXXXXXXXXXXXX/wordpress/wp-includes/formatting.php(3877): apply_filters('the_content', '')
#3 /XXXXXXXXXXXXX/wordpress/wp-includes/class-wp-hook.php(307): wp_trim_excerpt('', Object(WP_Post))
#4 /XXXXXXXXXXXXX/wordpress/wp-includes/plugin.php(191): WP_Hook->apply_filters('', Array)
#5 /XXXXXXXXXXXXX/wordpress/wp-includes/post-templa in /XXXXXXXXXXXXX/wordpress/wp-content/plugins/postpage-specific-custom-css/post-page-specific-custom-css.php on line 519
Any ideas?

This plugin does not work for comments pages

By masoud1990 on June 6, 2022

While it is a useful plugin, it does not wok in comments pagination. For example, you can use it to have custom CSS in a single page address: domain.com/title/ (custom css different from the general CSS of the whole site are used), but it does not work for comments pages of the same address such as: domain.com/title/comment-page1 or domain.com/title/comment-page2 As you know, there is no separate editing environment for comments pages. As a result, there is no separate box to add custom css for comments pages. Suggestion for the next update: the plugin will be more useful if the custom CSS of each single page work for all of its comments pages (from first comments page to the last one). Regards

Great Plugin!

By Gerald G. (Gwalter75) on May 3, 2022

Makes everything a lot easier 😉

One of my favorite plugins

By gustavovibe on May 2, 2022

Really useful in many cases, for those who want more freedom of the design and code of the page is one of the best plugins of the thousands we can add in wordpress.

0.3.1

  • Release date: 2026-07-23
  • Fixed “single page view only” checkbox not reflecting the saved value (and overwriting it on save)
  • Bundled css-tree 3.1.0 locally instead of loading it from a CDN
  • Editor CSS linting is advisory only (highlights issues); CSS is no longer blocked on the front end via a client-side validity flag
  • Removed _phylax_ppsccss_valid meta and the hidden live-checker form field
  • Added server-side sanitization for CSS embedded in tags (save and front-end output)
    * Hardened CSS sanitizer: escape 0.3.0

  • Release date: 2025-07-21

  • Added support for WooCommerce products (custom CSS can now be assigned to individual products)
  • Plugin renamed from “Post/Page specific custom CSS” to “Post/Page Specific Custom Code”

0.2.5

  • Release date: 2025-07-17
  • Highlighting for CSS code is now enabled by default.
    7 years ago it was optional due to performance concerns on
    slower machines — nowadays that looks outdated; you can still
    disable it using:
    add_filter(‘postpage_sccss-highlight_code’, ‘__return_false’);
  • Fixed incorrect validation of an empty CSS field
  • Replaced CSS validation with a linting mechanism
  • Minor code improvements and compatibility testing with newer PHP and WordPress versions
  • Removed birthday notice

0.2.4

  • Release date: 2022-01-20
  • Fixed default post/page values (they were reversed; thank you, @olandir, for pointing that out!)

0.2.3

  • Release date: 2021-11-29
  • Fixed options saving issue
  • Fixed text formatting

0.2.2

  • Release date: 2020-05-10
  • Many fixes to stay aligned with WordPress coding standards
  • Birthday banner visible only to administrators
  • Birthday banner can now be hidden until the following year
  • Editors can optionally be allowed to edit CSS

0.2.1

  • Release date: 2020-04-27
  • Custom JavaScript note
  • Birthday note

0.2.0

  • Release date: 2020-02-25
  • Compatibility: WordPress 5.3 and earlier
  • Added an options page for the plugin
  • Added default CSS for posts and pages
  • Added CSS highlighting for posts, pages, and the options screen (default CSS)
  • Larger editor fields by default, with an option to make them even bigger

0.1.4

  • Release date: 2018-11-21
  • Status: Stable
  • Compatibility: WordPress 5.0 and earlier
  • Minor code refactoring

0.1.3

  • Release date: 2018-05-18
  • Status: Stable
  • Compatibility: WordPress 4.9.6 and earlier

0.1.2

  • Release date: 2018-05-05
  • Status: Stable
  • Compatibility: WordPress 4.9.5 and earlier
  • Added screenshots, icons, and a header image for the WordPress repository

0.1.1

  • Release date: 2017-08-03
  • Status: Stable
  • Compatibility: WordPress 4.8.1 and earlier
  • Added screenshots, icons, and a header image for the WordPress repository

0.1.0

  • Release date: 2016-12-16
  • Status: Stable
  • Initial release