• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer

RealClimate

Climate science from climate scientists...

  • Start here
  • Model-Observation Comparisons
  • Miscellaneous Climate Graphics
  • Surface temperature graphics
You are here: Home / Climate Science / Site updates etc.

Site updates etc.

27 Nov 2025 by Gavin 5 Comments

Hi folks, just a quick maintenance notice to say that we are upgrading the blog to a more recent version of PHP (which is the code that underlies WordPress) (going from version 7.4 to 8.3). Unfortunately, this has caused problems for two of the older plugins we use, Kcite (which provides the inline links to the references from the DOI code), and Language Switcher (which we used a lot at the beginning to provide translations). Neither are actively maintained by their original coders (and we have updated some of the functionality in any case).

As of today, we’ve had to turn them off – and so the reference lists are not being generated and the languages on older posts will mixed up. If any of our readers have some relevant skill sets, we’d be happy to work with them to debug this issue! Let us know in the comments. Additionally, feel free to make suggestions for other improvements – the more specific the better!

Hopefully, we will resolve the issues soon. Thanks for your continued support and patience.

Update (Nov 28): I got the Kcite plugin working again (follow the link for details and remaining issues).

Filed Under: Climate Science Tagged With: Maintenance

About Gavin

Reader Interactions

5 Responses to "Site updates etc."

  1. Janne Sinkkonen says

    28 Nov 2025 at 2:59 AM

    If you have a command line available on a Linux server, using codex with gpt-5.1-codex-max or Claude Code with Opus 4.5 could help, you just need to give them wide access to execute commands.

    Opus here comments on your situation:

    A few practical suggestions for dealing with these PHP 8.3 compatibility breaks:
    For Kcite (DOI citations):

    The fixes for PHP 8.3 compatibility are often fairly minor—things like deprecated function replacements, stricter null handling, or removed functions. If someone on your team is comfortable with PHP, it might be worth looking at the error logs to see what’s actually breaking. Common culprits are things like each() being removed, changes to how implode() arguments are ordered, or stricter type checking.

    Alternatively, look for a maintained alternative. Plugins like CM Footnotes or Jepack’s Markdown with footnote support might cover similar ground, though you’d need to evaluate whether they handle DOI linking the way you need.

    Check if anyone has forked Kcite on GitHub with PHP 8 fixes.

    For Language Switcher:

    If you’re not actively using it anymore, this might be a good opportunity to just remove it cleanly rather than fix it.
    If you still need multilingual functionality, Polylang (free) or WPML (paid) are actively maintained and widely used.

    General advice:

    Before going live, test on a staging copy if you haven’t already.

    Tools like PHP Compatibility Checker (a WP plugin) can scan your plugins and flag specific lines causing issues.
    If the plugins are essential and the fixes are beyond your team’s capacity, a freelance WP/PHP developer could probably patch them for a few hours’ work—PHP 8 compatibility fixes tend to be straightforward once you know what to look for.A few practical suggestions for dealing with these PHP 8.3 compatibility breaks:
    For Kcite (DOI citations):

    The fixes for PHP 8.3 compatibility are often fairly minor—things like deprecated function replacements, stricter null handling, or removed functions. If someone on your team is comfortable with PHP, it might be worth looking at the error logs to see what’s actually breaking. Common culprits are things like each() being removed, changes to how implode() arguments are ordered, or stricter type checking.

    Alternatively, look for a maintained alternative. Plugins like CM Footnotes or Jepack’s Markdown with footnote support might cover similar ground, though you’d need to evaluate whether they handle DOI linking the way you need.

    Check if anyone has forked Kcite on GitHub with PHP 8 fixes.

    For Language Switcher:

    If you’re not actively using it anymore, this might be a good opportunity to just remove it cleanly rather than fix it.
    If you still need multilingual functionality, Polylang (free) or WPML (paid) are actively maintained and widely used.

    General advice:

    Before going live, test on a staging copy if you haven’t already.

    Tools like PHP Compatibility Checker (a WP plugin) can scan your plugins and flag specific lines causing issues.
    If the plugins are essential and the fixes are beyond your team’s capacity, a freelance WP/PHP developer could probably patch them for a few hours’ work—PHP 8 compatibility fixes tend to be straightforward once you know what to look for.

    [Response: Thanks. I used PHPcompatibility to fix a couple of things and they now pass that check, but still cause crashes. I’m loath to start using new plugins because there are thousands of posts that would need to be updated. I’m happy to hire someone to rather fix this. – gavin]

    Reply
  2. Wpml etal says

    28 Nov 2025 at 11:12 PM

    I asked AI. Here’s what it says (with some stitching together).

    Kcite is an old plugin that wasn’t designed for PHP 8.3, so it crashes there, this it usually needs small updates to fix fatal errors (like null checks or outdated functions). If you can see the PHP error log, that will show exactly what to fix. Otherwise, the safest options are either patching it carefully or keeping it on an older PHP version.

    The key is targeted fixes, not a full rewrite.

    Instead of Kcite it recommends citekit, citation note and WebKew WP References and Citations

    Keep Kcite for old posts on PHP 7.4 (still supported by WordPress (receives security updates) to avoid breaking them. Use a modern plugin like CiteKit, Citation Note, or WebKew for all new posts on PHP 8.3. Old posts can be migrated gradually if needed.

    Gradually update old posts by using a script or batch process to replace Kcite shortcodes or DOIs with the format required by a modern citation plugin like CiteKit.

    In the meantime, you might consider … Switching to a modern translation plugin like Polylang, WPML or TranslatePress.

    Reply
  3. Wpml etal says

    28 Nov 2025 at 11:22 PM

    Regarding the thousands of posts AI says (or you can just ask WordPress support for help help@wordpress.com. I no nothing about tech),

    -1, // all posts
    ‘post_type’ => ‘post’, // adjust if needed
    ‘post_status’ => ‘publish’
    );

    $all_posts = get_posts($args);

    foreach ($all_posts as $post) {
    $content = $post->post_content;

    // Replace Kcite shortcode with CiteKit shortcode
    $new_content = preg_replace(‘/\[kcite\s+doi=”([^”]+)”\]/i’, ‘[cite doi="$1"]‘, $content);

    // Only proceed if changes are detected
    if ($new_content !== $content) {
    if ($update_posts) {
    // Actually update the post
    wp_update_post(array(
    ‘ID’ => $post->ID,
    ‘post_content’ => $new_content
    ));
    echo “UPDATED Post ID: ” . $post->ID . “\n”;
    } else {
    // Preview mode: just log changes
    echo “PREVIEW Post ID: ” . $post->ID . “\n”;
    echo “Old snippet: ” . substr($content, 0, 100) . “…\n”;
    echo “New snippet: ” . substr($new_content, 0, 100) . “…\n”;
    echo “————————————–\n”;
    }
    }
    }

    if ($update_posts) {
    echo “Migration complete! Posts have been updated.\n”;
    } else {
    echo “Preview complete! No changes were made to the database.\n”;
    }
    ?>

    How to use
    1. Set $update_posts = false; to preview changes.
    2. Run the script and review the output — it shows old and new content snippets.
    3. Once you’re confident everything looks correct, set $update_posts = true; to apply changes to all posts.
    4. Make sure you backup your database before running with updates enabled.

    Reply
  4. Wpml etal says

    29 Nov 2025 at 10:19 AM

    Here’s a thought, start off with a fresh site and just keep the old one running as is for now, archive it and link to it (really, I don’t know any of this but trying to help).

    There’s AI suggests are:

    1. Astra
    2. GeneratePress
    3. Neve
    4. Blocksy
    5. Hello Elementor
    6. Twenty Twenty-Three

    That’s all I can think of. If I’m way off base I’ll excuse myself now :)

    Reply
    • Wpml etal says

      29 Nov 2025 at 11:59 AM

      Themes AI suggests, not theres AI suggests

      Reply

Comment Policy:Please note that if your comment repeats a point you have already made, or is abusive, or is the nth comment you have posted in a very short amount of time, please reflect on the whether you are using your time online to maximum efficiency. Thanks.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

Search

Search for:

Email Notification

get new posts sent to you automatically (free)
Loading

Recent Posts

  • Unforced Variations: Dec 2025
  • Who should pay?
  • Site updates etc.
  • Raising Climate Literacy
  • Unforced variations: Nov 2025
  • High-resolution ‘fingerprint’ images reveal a weakening Atlantic Ocean circulation (AMOC)

Our Books

Book covers
This list of books since 2005 (in reverse chronological order) that we have been involved in, accompanied by the publisher’s official description, and some comments of independent reviewers of the work.
All Books >>

Recent Comments

  • Ron R. on Unforced Variations: Dec 2025
  • Jim on Unforced Variations: Dec 2025
  • Jim on Unforced Variations: Dec 2025
  • Jim on Raising Climate Literacy
  • Jim on Raising Climate Literacy
  • Jim on Raising Climate Literacy
  • MA Rodger on Unforced Variations: Dec 2025
  • Susan Anderson on Unforced Variations: Dec 2025
  • Susan Anderson on Raising Climate Literacy
  • Susan Anderson on Raising Climate Literacy
  • Atomsk's Sanakan on Unforced Variations: Dec 2025
  • Atomsk's Sanakan on Raising Climate Literacy
  • zebra on Raising Climate Literacy
  • Mr. Know It All on Unforced Variations: Dec 2025
  • Mr. Know It All on Unforced Variations: Dec 2025
  • Killian on Unforced Variations: Dec 2025
  • Data on Raising Climate Literacy
  • Data on Raising Climate Literacy
  • Data on Unforced Variations: Dec 2025
  • Piotr on Unforced Variations: Dec 2025
  • Atomsk's Sanakan on Raising Climate Literacy
  • Atomsk's Sanakan on Raising Climate Literacy
  • Atomsk's Sanakan on Raising Climate Literacy
  • Data on Unforced Variations: Dec 2025
  • Data on Raising Climate Literacy
  • Nigelj on Unforced Variations: Dec 2025
  • patrick o twentyseven on Who should pay?
  • patrick o twentyseven on Who should pay?
  • Chuck on Unforced Variations: Dec 2025
  • Jim on Raising Climate Literacy

Footer

ABOUT

  • About
  • Translations
  • Privacy Policy
  • Contact Page
  • Login

DATA AND GRAPHICS

  • Data Sources
  • Model-Observation Comparisons
  • Surface temperature graphics
  • Miscellaneous Climate Graphics

INDEX

  • Acronym index
  • Index
  • Archives
  • Contributors

Realclimate Stats

1,389 posts

15 pages

248,976 comments

Copyright © 2025 · RealClimate is a commentary site on climate science by working climate scientists for the interested public and journalists.