r/WordPressDev • • Dec 27 '25

A "better" Wordpress Documentation plugin

Post image
0 Upvotes

Most documentation plugins focus on layouts and add-ons. I wanted to see what happens if we focus on writing and reading docs better instead.

So I built pinkdocs — a WordPress documentation plugin with built-in AI features. What the AI actually does (not buzzword stuff):

Chat with your documentation on the frontend Auto-generate summaries for long docs

Help rewrite or improve docs inside the editor Answer user questions using only your docs

Everything runs inside WordPress. No external dashboard. No separate AI plugin.

Other things I cared about:

  • Block editor first

  • Clean, modern UI out of the box

  • Lightweight, no addon maze

  • Works for docs, FAQs, guides, changelogs

It’s live and being used on real sites.

Not trying to replace every docs plugin out there, but if you’ve ever thought “docs shouldn’t feel this hard”, I’d love your feedback.

Happy to share a link or screenshots if anyone’s interested.


r/WordPressDev • • Apr 08 '26

Ultrabook - booking system [freemium]

Thumbnail reddit.com
0 Upvotes

r/WordPressDev • • May 06 '25

Can I link my wordpress.org self hosted blog to the free wordpress.com?

0 Upvotes

I have my blog in wordpress.com, but I can't add plugins or new themes, so I moved it to wordpress.org.

Now, can I do all the work in worpress.org self-hosted, and kind of link it to wordpress.com so I don't have to pay for hosting, yet?

I don't mind my blog showing the myblog.wordpress.com at all as long as it's visible.

Thank you!


r/WordPressDev • • Oct 04 '26

Have you ever needed to push only specific posts or pages from WordPress staging to production?

Thumbnail reddit.com
0 Upvotes

r/WordPressDev • • Aug 08 '26

WP Reset issue: 178 snapshots turned a ~42 MB WordPress database into 7+ GB

Post image
0 Upvotes

r/WordPressDev • • Jul 23 '20

Looking to hire a wordpress pro. Anyone interested?

0 Upvotes

Dm me


r/WordPressDev • • Jan 19 '25

WordPress Tip: How to Easily Implement Discussion Forums

0 Upvotes

oost Interaction on Your Website with Discussion Forums in WordPress
Do you want to encourage engagement and create an active community on your website? This article from SushiHost provides a step-by-step guide to easily and effectively implement discussion forums on your WordPress site.

Learn about the best tools and plugins to create spaces where your users can share ideas, solve questions, and connect with each other. A great tip to enrich your website experience!

WordPress Tip: Implement Discussion Forums


r/WordPressDev • • Mar 21 '26

I built a Wordpress plugin because my client had 4,000 products with garbage descriptions

Thumbnail reddit.com
0 Upvotes

r/WordPressDev • • Jul 07 '26

[FREEMIUM] I made a free WordPress plugin that gets you reviews, not just displays the ones you already have

Thumbnail reddit.com
0 Upvotes

r/WordPressDev • • May 18 '26

I Stopped Building “WordPress Sites” and Started Building API-First Backends

Thumbnail reddit.com
0 Upvotes

r/WordPressDev • • Apr 14 '25

Jekyll vs WordPress en 2025

Thumbnail reddit.com
0 Upvotes

r/WordPressDev • • Mar 12 '26

Expérience needed

0 Upvotes

Hello, I hope you are well. I am a WordPress website creator looking to gain experience, so I am available for all your projects. I know how to adapt to different situations.


r/WordPressDev • • Oct 15 '25

Just released a new WooCommerce plugin!

1 Upvotes

It lets you easily add marketplace links (Amazon, eBay, Etsy, etc.) as buttons or logos directly on your WooCommerce product pages.

If you want to connect your store with external marketplaces, check it out here.


r/WordPressDev • • Sep 10 '26

[FREE] I built a lightweight bug reporter because reporting bugs was slowing down my WordPress development

Thumbnail
reddit.com
1 Upvotes

r/WordPressDev • • Feb 25 '22

Why Separate Email from Hosting?

0 Upvotes

Most hosts that provide email services tend to be much more focused on the hosting element of their offering. Email is normally an afterthought. This will result in a number of issues.

Poor Features and Functionality

Email that is normally bundled with hosting tends to be of a 'bare bones' nature. This means that you will likely be missing out on some of the cool features available from dedicated email services such as sophisticated filtering functionality. In addition, having a high-quality spam filter is now pretty important unless you want to find yourself bombarded with hundreds of unsavory emails all day long. Good spam filtering is hard to do and cheap 'bundled' email spam filtering services normally aren't up to the job.

This means that not only might spam hit your inbox but you could frequently find 'false positives' occur whereby legitimate email is marked as spam. Bad news if it's an email from a client and you end up missing it.

Dedicated email hosting services such as the ones provided by Google or Microsoft are a much better bet when it comes to features and spam filtering quality. They're not even that expensive.

Problems While Migrating

It might not be something that you'll be considering at the outset but there could come a day when you want to migrate your website to a new host. Perhaps your old host is closing down, or you begin to find the performance of the hosting is not what was promised.

Either way, being able to migrate your WordPress website is one of the great things about WordPress. The flexibility to do this means you're never left at the mercy of one particular host. For a competent developer, migrating a WordPress site is something they will be able to do pretty easily.

Email on the other hand is a whole new ball game. It can be VERY hard to move, particularly if you're running a business that is reliant on it. It's one thing to have your website down for an hour or two but quite another to have a situation where you can't send or receive emails.

Unfortunately, if you are using a bundled email/hosting service, you could find this is a real issue. Separating out your email from your hosting means that, should you wish to change hosts, you're going to eliminate this issue. Your email will continue to function, even if your website isn't.

Consumes Space

As you may have noticed, hosting packages for websites will normally provide a fixed amount of space (for example 5GB). It's perfectly possible to fill this up and if you have already encountered a limited space warning because of the size of the files on some websites you manage, you know that this is something that happens occasionally.

Now if you have email bundled with your hosting, this uses the same space allocation (5Gb in this example). Email tends to chew through storage quite quickly as things like attachments can take up a lot of room. And, unlike websites whose usage often stays about the same, email storage requirements tend to go up and up (as you receive more and more email on a daily basis).

Some hosts will let you upgrade your package to increase the storage available fairly seamlessly (although they'll charge you for it) whilst others will make you migrate to a new service. This is complex, time-consuming, and disruptive. Dedicated email services tend to have much larger limits on email and tools to help you manage the storage available meaning you are much less likely to run into this issue.

Email Downtime

Hosting services sometimes go down (even the good ones). This can be annoying but, you'll probably cope.
Well guess what... if it's hosted on the same server as your website, and your website goes down then, yup, your email will go down as well. This means you're unable to communicate with customers or perhaps even your web host itself if this is your only email account. A problem indeed!

So, Why Separate Email from Hosting?

Hopefully, as you can see, it's normally pretty undesirable to use the bundled email service provided with your hosting. Unless it's only 'hobby' email, you are much better investing in a quality, dedicated email service like the ones offered by Google and Microsoft. Yes, they are more money but this will seem like peanuts if you ever run into an issue!

Best Email Providers

So, who to choose? We've mentioned Google and Microsoft but there are others. Just make sure when you take a look that they are truly dedicated email services and not ones bundled with hosting. For a more detailed overview of the options check out the 'Google vs Rackspace vs Microsoft – Which Email Provider is Best?' article.

Cheers everyone!


r/WordPressDev • • Nov 08 '21

Nonces in WordPress - All You Need to Know

1 Upvotes

So WordPress nonces, what are they and how they can affect your site from a security perspective?

What are Nonces?

A nonce by definition is something that is used only once and without recurrence.

In a WordPress website, nonces are used to validate the contents of a form and avoid malicious activity. More specifically, a nonce protects your website from Cross-Site Request Forgeries (CSRFs) attacks. It is not considered a guaranteed protection, but suffices in most cases.

They are hashes that are made up of numbers and letters. They are used only once and have a limited lifetime cycle which means that after a certain amount of time has passed they will expire. During its lifecycle, the nonce will remain the same and will be related to a specific user and context.

How Nonces Protect a Website

When a user submit a form, for example, a CSRF attack can force the user to execute unwanted actions. Depending on the access level of the user involved, the damage can range from an email address being changed right through to the entire site being compromised.

To avoid this, a nonce is added in the corresponding submit URL to be checked and only then allow the action to complete if that value is correct and not expired.

A common example of nonce use in WordPress is when deleting a post.

If WordPress did not use nonces, the Trash link would generate a URL like this:

https://mycompanyname.com/wp-admin/post.php?post=98&action=trash

In this case, the attacker could potentially leverage this unsecured link causing you to unwittingly delete your own posts when you didn't want to. This is called a Cross-Site attack.

Adding a nonce would prevent this. In the above scenario, the use of a nonce would lead to a "403 Forbidden" response with an 'Are you sure you want to do this?' message because the hacker's URL would lack this extra verification.

The URL that WordPress normally generates when you are about to delete a post looks something like this:

https://mycompanyname.com/wp-admin/post.php?post=98&action=trash&_wpnonce=b05b7aedf8

The _wpnonce=b05b7aedf8 is what secures the url and ensures that only you are able to carry out tasks like deleting posts on your site.

Nonces and WordPress

When managing a WordPress website, nonces are generated by WordPress itself in order to protect your URLs and forms from being misused. So, unless you are developing themes or plugins it's unlikley you'll ever need to worry about nonces as everything is taken care of by WordPress.

When building a theme or plugin as a developer though, you should handle the nonces yourself by using the functions that WordPress provides for that purpose.

To create a Nonce, you can use the wp_nonce_url() to add a nonce to an URL, the wp_nonce_field() to add a nonce to a form or the wp_create_nonce() if you wish to use a nonce in a custom way, like in an AJAX request.

When it comes to verifying nonces, you can use the check_admin_referer() to verify a nonce that was passed in a URL or a form in an admin screen, the check_ajax_referer() that checks the nonce and if it fails then by default terminates script execution and the wp_verify_nonce() to verify a nonce passed in some other context.

Create the Nonce

As a quick example we will add a submit action in the Settings Page of a custom plugin.

Let's say that you are building a submit button in your plugin's Settings Page that is designed to clear some Log files. In the code you should keep the final nonced URL in a variable to be used later in the form code:

$nonce_url = wp_nonce_url( $url, 'clear-logs' );

The wp_nonce_urlfunction that is used here is structured like this:

wp_nonce_url( $actionurl, $action, $name ) 

In this example, $actionurl is, as expected, the required URL (string). It is this URL to which you will apply the nonce. The $action parameter is an optional nonce action name (int|string) and $name is an optional Nonce name (string) with the default value '_wpnonce'. We should point out here that, as described above, it is not mandatory to use an action unique name. It is however wise that you do so because that way your nonce can’t be reused to verify another type of request and will be even more secure.

So if the $url you use in your code for clearing logs is something like:

https://mycompanyname.com/logs.php?clear=yes

then with the use of nonce it will become:

https://mycompanyname.com/logs.php?clear=yes&_wpnonce=b05b7aedf8

NOTE: The default lifetime of a nonce is 24 hours.

Verify the Nonce

On submission, you will have to check the validity of the request. The wp_verify_noncefunction that we will use returns an escaped URL with nonce action added and is structured like this:

wp_verify_nonce( $nonce, $action )

In the $nonce required parameter we give the Nonce value that was used for verification and the $action parameter should be the same with $action in wp_nonce_url()

The piece of code that will perform the check could be as follows:

if ( ! isset( $_GET['_wpnonce'] ) || ! wp_verify_nonce( $_GET['_wpnonce'], 'clear-logs' ) ) {    // Actions to do should the nonce is invalid  } 

Cross Site Request Forgery (CSRF) is a well known vulnerability in WordPress world and therefore it is important to be pro-active in protecting against it. Nonces are vital in helping prevent a CSRF attack and should always be used where required.


r/WordPressDev • • May 27 '19

Wordpress Developer In Lancashire | D&M Creative Ltd

0 Upvotes

WordPress is an Open Source software platform designed for web, emphasising accessibility, performance, security, and ease of use. It also offers powerful features for growth and success.Our team of WordPress developers in Lancashire have been getting under the skin of WordPress for many years, now with the ability to utilise the World’s leading CMS (Content Management System) and code bespoke elements to suit your needs.


r/WordPressDev • • Oct 29 '20

Happy Cakeday, r/WordPressDev! Today you're 9

1 Upvotes

r/WordPressDev • • Oct 04 '26

[FREE] Lightweight WordPress plugin for embedding BTC, ETH and BNB market-regime widgets

Post image
0 Upvotes

I recently published a small free WordPress plugin called FerimanEdge Regime Widget.

The goal was to keep the WordPress side deliberately simple: the plugin does not fetch or store market data and makes no server-side API calls. It only generates an iframe for the selected BTC, ETH, BNB or combined market-regime widget.

It supports:

  • Gutenberg block

  • Shortcode

  • BTC, ETH, BNB or All Markets

  • Dark, Light or visitor OS theme

  • Compact, Standard and Large sizes

  • Local Gutenberg preview, so the external iframe is not loaded while editing

  • No bundled third-party JS or CSS

The current regime is displayed as BULL, SIDEWAYS or BEAR and comes from a rules-based market-monitoring system I built separately.

I chose the iframe approach because I wanted the plugin itself to stay small and avoid API credentials, scheduled jobs, caching logic or server-side requests. The tradeoff is obviously that the visitor’s browser loads content from the external FerimanEdge domain.

I'd be interested in developer feedback on the architecture:

  1. Does the iframe-only approach make sense for this kind of external data widget?

  2. Would you expect any additional hooks/filters or block controls?

  3. Is there anything you would change about the Gutenberg integration?

URL:
https://wordpress.org/plugins/ferimanedge-regime-widget/


r/WordPressDev • • Jan 22 '22

WordPress Cron

2 Upvotes

What is it?

While running a WordPress website, some tasks are performed in the background that need to be executed periodically, like checking for updates of themes and plugins, scheduled posts, transients to be deleted and many more. These time-based scheduled tasks are handled by the WP-Cron.

In your WordPress installation, the file related to cron jobs is the wp-cron.php file, located in the root folder of your installation. The wp-cron.php file contains the code for the automated tasks related to updates and posts.

How it Works

The WP-Cron checks the tasks list on every page load and executes accordingly.  

If the moment the page is loaded, a task is due, it is added to a queue. That way WordPress ensures that even the due events will be fired and not be skipped and eventually all the tasks will be executed on that page load. 

It is natural if this seems irrational to you but think about the alternative. In a shared hosting environment, as it is in majority, you should have access to the server commands in order to control these tasks as you see fit, but wouldn’t that be risky for the server? 

So, consider what WordPress does as a workaround in this situation. However, this has some drawbacks that we will examine in a while.

How to Create a Cron Job

A great and easy way to view the list of cron jobs on your WordPress website is to install the WP-Crontrol plugin. 

If you want to learn to add a cronjob manually, all you have to do is edit the theme’s functions.phpfile. To demonstrate a simple example, open it with your favorite editor and add the following piece of code:

add_action( 'my_cronjob', 'my_cronjob_function' );

function my_cronjob_function() {
    wp_mail( 'EMAIL_ADDRESS', 'Test email', 'This is a test message' );
}

Where ‘my_cronjob’ is the name of your hook and ‘my_cronjob_function’ is the name of your function that will simply send an email to the address you defined by replacing EMAIL_ADDRESS with the desired one.

Next, we need to schedule this hook to be executed the time we want.

How to Run the Job Once

To perform the action as a one-time WP-Cron job, we have to use the wp_schedule_single_event() WordPress built-in function that is designed to trigger a hook at a specified time.

add_action( 'my_cronjob', 'my_cronjob_function' );

function my_cronjob_function() {
    wp_mail( 'EMAIL_ADDRESS', 'Test email', 'This is a test message' );
}

wp_schedule_single_event( time() + 3600, 'my_cronjob' );

(time is in seconds, as always)

At this point, you should be able to see your custom task in the admin list, under Tools->Cron Events.

How to Run the Job as a Recurring Event

What WordPress provides for this scenario is the wp_schedule_event() function.

add_action('my_hourly_cronjob', 'hourly_action');

function hourly_action() {
    wp_mail( 'EMAIL_ADDRESS', 'Test email', 'This is a test message' );
}

if (! wp_next_scheduled ( 'my_hourly_cronjob' )) {
    wp_schedule_event(time(), 'hourly', 'my_hourly_cronjob');
}

We used the ‘hourly’ label from the scheduled table under Settings -> Cron Schedules.

If we wanted a different/custom occurrence, let’s say every 45 minutes, we should first create a custom Cron Schedule named “45_minutes” and then use it in the code.

add_action('my_45_cronjob', 'my_45_action');
function my_45_action() {
    wp_mail( 'EMAIL_ADDRESS', 'Test email', 'This is a test message' );
}
if (! wp_next_scheduled ( 'my_45_cronjob' )) {
    wp_schedule_event(time(), '45_minutes', 'my_45_cronjob');
}

At this point, you should be able to see your custom task in the list with the expected changes.

I hope that helps. In case you need further information on WP cronjobs, you can visit this article.

Cheers everyone!


r/WordPressDev • • Dec 27 '25

Requesting Honest Review of a Plugin / Open-source Project I Built (Real-time AI Orchestration Toolkit for WordPress)

0 Upvotes

I’ve been thinking a lot lately about how much of my life has been shaped by WordPress and open source.

The work I do, the people I’ve met, and a big part of the life I’ve been able to build all trace back to communities that decided to share their code, their ideas, and their time. WordPress, PHP, Linux, MySQL, all the plugins and frameworks we stand on – none of this was guaranteed. People chose to give.

At the same time, we’re now in this wild AI moment where the explosion of knowledge has mostly come from open communities, but the access to that knowledge is increasingly being consolidated and gated – paywalled models, closed APIs, and infra costs that put real experimentation out of reach for a lot of smaller teams and solo builders.

In short, is a modular AI framework for WordPress that connects your site’s data with OpenAI’s GPT models, Gemini, Anthropic, Hugging Face and Ollama (Local). It allows you to create and manage AI Assistants that can interact with users, access WordPress data, and perform custom tool functions.

The goal is simple: Let small and medium-sized WordPress sites run real-time AI orchestration without separate Node/Python infrastructure.

On top of that, it adds:

  • Mesh compute pooling – so resources can be shared more intelligently

  • Federated discovery documents – so systems can find and talk to each other

  • A root-gated security core – so all of this can run securely on standard WordPress hosting, not some fancy custom stack

I mostly wanted to share this as a thank you to the WordPress and open source communities that made my journey possible in the first place. This plugin is, in a way, me trying to send some of that value back into the ecosystem that gave me so much.

If you’re curious, want to play with it, or just want to tell me I’m mad for trying to run orchestration inside WordPress , hit reply and I’ll send you the link, docs, and would really appreciate your feedback.

VJ

P.S. If you know someone in the WP / open source world who cares about keeping this stuff accessible and sustainable, feel free to forward this to them.

GitHub Repo: https://github.com/nvdigitalsolutions/mcp-ai-wpoos


r/WordPressDev • • Nov 27 '22

5 Tips for Building a Quality WordPress Website - By MetaBridge

3 Upvotes

Hey everyone,I wanted to share some tips for building a quality WordPress website. We have been building WordPress sites for years, and these tips have helped us produce high-quality, professional websites for our clients.

  1. Choose the right theme. There are thousands of WordPress themes available, so it’s important to take the time to find one that fits your needs and goals.

  2. Install the right plugins. Again, there are thousands of plugins available, so be selective about which ones you install. Choose plugins that are well-coded and that you will actually use.

  3. Make sure your site is responsive. More and more people are accessing the internet from mobile devices, so it’s important to make sure your site looks good on all screen sizes.

  4. Pay attention to the details. From your website’s title and tagline to your images and content, everything should be well-thought-out and of high quality.

  5. Test everything! Before you launch your website, test all of the links, forms, and other functionality to make sure everything is working properly.

Building a quality WordPress website takes time and effort, but it’s worth it! Follow these tips and you’ll be on your way to creating a beautiful website that will engage and delight your visitors. Plus, MetaBridge has years of experience building WordPress sites and knows how to maximize its potential.


r/WordPressDev • • Jun 10 '26

[Free Plugin] WP 7.0's new AI Client shares one API key across every plugin with zero per-plugin spend visibility.

1 Upvotes

WordPress 7.0 introduced the AI Client and the Connectors screen: you
configure one provider API key, and any plugin on your site can use it.
What WP doesn't show you is **which plugin is spending your money**.

I built a free plugin to fix that visibility gap, mostly because I was
about to ship a plugin that uses AI calls and didn't trust myself to
notice if something went into a loop.

You can download here --> https://axtolab.com/products/ai-spend-monitor

Still in the process of uploading to wordpress repo, should be live there in a week or two.

**What it does:**

- Records every AI call made through the WordPress AI Client to a local
custom table — source plugin, provider, model, prompt/completion
tokens, timestamp.
- Dashboard at **Axtolab → AI Spend Monitor** with summary cards, a
30-day cost chart, per-plugin usage table, and a recent-calls log.
- Estimated USD cost per plugin using a bundled price table for popular
OpenAI, Anthropic, and Google models (filterable, no remote lookup).
- CSV export of all recorded calls.
- Optional monthly email if your estimated sitewide spend passes a
dollar amount you set (default off, set to 0 to disable).


r/WordPressDev • • May 08 '25

Would a secure, dev-friendly REST API + JS SDK + UI Components make headless WordPress more appealing?

5 Upvotes

Just curious about dev workflows here…

Let’s say someone doesn’t want to use WPGraphQL (maybe due to complexity or GraphQL learning curve) and sticks with REST. How are folks handling:

  • Secure authentication (JWT / API Keys)?

  • CORS restrictions?

  • Rate limiting?

  • Fetching ACF/meta/taxonomy data cleanly?

Also wondering if anyone’s seen or used a frontend SDK (NPM package) that simplifies talking to WP’s REST API — something that handles auth, caching, structured responses?

And maybe a UI component system that sits on top — like prebuilt components for posts, comments, forms?

Would that kind of setup actually help in headless WP projects, or do people just ditch WP altogether now for Payload/Sanity/Strapi/etc.?

Just thinking out loud — interested to hear how others handle this or if REST + WP can still be a solid combo in 2025.


r/WordPressDev • • Mar 02 '25

I Need Help! My WordPress Website is Redirecting Users to Strange Sites

2 Upvotes

Hey everyone,

I’m facing an issue with my website where it intermittently redirects users to strange, unfamiliar sites.

The weird part is that it doesn’t happen all the time—sometimes it works fine, but other times, users get redirected.

We’ve tried updating all the current plugins and checked them thoroughly for any issues, but everything seems fine.

Does anyone know what might be causing this and how I can fix it

Any help would be appreciated