how to start a blog header w7sgJF
WordPress News

How to Start a Successful Blog: A 12-Step Guide for Beginners

So, you want to start a blog, huh? First of all, that’s a pretty dope idea. In my opinion, it’s one of the most fun and rewarding things you can do.

Blogging allows you to dive deeply into topics that really interest you, improve as a writer, and learn a ton along the way. In addition, starting your own blog has never been easier. The required pieces are readily available. You just have to know how to use them, which is what this post will show you.

We’ll cover the step-by-step process on how you can start a blog basically today. From if and why you should do it, over preparation, getting a website address, setting up and designing your blog, to writing your first blog post and making it ready for publishing.

But wait, isn’t blogging dead?

If blogging had really died as often as people said it did, it would have signed a DNR by now.

But, the truth is, blogging has never really gone away. It has changed over time, for sure, but is still a valid way to attract an audience, drive traffic to your website, and even build a business around.

Need proof?

In Orbit Media Studio’s annual blogger survey, out of 1,000 professional bloggers:

  • 77% of participants say they see results from blogging, 20% even say strong results
  • 65% use it as a tool to drive SEO traffic to their websites
Chart illustrating the percentage of bloggers who consider themselves successful.

Yes, they also say it takes more effort to craft blog posts. Participants see the best results when they spend 4-6+ hours per in-depth blog post. But blogging is alive and well.

Okay, so why should you start a blog?

Starting a blog lets you write about and explore anything you want. Whatever your interest or passion, it’s an outlet to curate your knowledge and ideas.

Example of a blog sharing knowledge and expertise.

In addition, it’s great writing practice and great thinking practice too. It forces you to properly structure your ideas. Plus, it really helps with learning because, in order to explain something to others, you first need to understand it yourself.

In addition, being creative is simply fun and meaningful. Sharing what you know with others in the hopes of helping, inspiring, and educating them is rewarding.

What’s more, it can actually be a vehicle to build an audience, establish authority in your industry, and position yourself as an expert. And who knows, over time, your  blog might turn into a side or even main business. You wouldn’t be the first blogger to start earning money from sharing your knowledge.

Example of a blog's home page.

Most importantly, a blog is your own presence on the web where you can decide what happens and how. And, especially if you create it with a system like WordPress, you fully own it.

That’s different from, say, a presence on social media, where you can:

  • Get banned for violating the terms and conditions, even accidentally
  • Lose your reach due to an algorithm change
  • Be forced to migrate because you don’t support the new ownership

When you don’t own your outlet, you are at the mercy of those who do.

Ready to sign up with WordPress.com? Start your blogging journey here.

How to start a blog with WordPress.com in 12 steps

Feel motivated yet? Good, then let’s put that energy to good use.

1. Choose a niche and determine what you’ll write about

When considering your blog topic and niche, there are three fundamental factors to think about:

  • Your interest – It’s hard to start a successful blog and stay motivated to write about something day in and day out that you aren’t really into, even if it’s a popular topic. So, choose something you actually care about, it will also show in your writing.
  • The audience – Is there enough general interest in your topic that you are able to attract an audience? You can use tools like Google Trends, Google Keyword Planner, Similarweb, or the Ubersuggest Chrome extension to research this.
  • Monetization – Some niches are more suitable for building a business around than others. If that’s your goal, it helps to do some research beforehand. For example, you may check if there are affiliate programs you could sign up for. A simple Google search like “[your topic] affiliate program” is often enough. Other ways to monetize a blog are Patreon and Ko-fi. On WordPress.com you can also accept donations and run ads on your blog.

It’s also important to niche down. Start with broader topics like personal finance, cooking, or travel. From there, dig further, for example:

  • Investing for millennials
  • High-protein meal prep ideas
  • Solo travel for women

You can always broaden your topic later but for the beginning, going small helps you focus.

2. Brainstorm a name for your blog and secure your domain

In naming your blog, you can go different routes. For example, you could use your own name like author James Clear.

Screenshot of James Clear's blog.

This emphasizes who is behind the writing even if it doesn’t give away the blog’s topic yet. You can also use a business name instead of your personal name.

Another choice is to give the blog a title that conveys its topic, similar to Nerd Fitness.

Screenshot of the Nerd Fitness blog.

A third option is to do a mix. For example, Chris Guillebeau uses his own name for the domain but his blog is called “The Art of Non-Conformity”

Screenshot of the Art of Non Conformity blog.

Generally, your blog name should be clear, easy to remember, and unique. This also matters for your choice of domain name. You want to use one that’s the same as the blog name or at least intimately tied to it.

To find out if your desired domain is available, use WordPress.com’s domain search tool.

Screenshot of WordPress.com's domain name search tool.

Input your desired name and the tool will tell you if it’s available, what it costs, and alternatives.

Screenshot of the choosing a domain step.

You can also purchase it right then and there. More tips for choosing a domain name.

3. Pick a hosting plan

Hosting allows you to make your blog available for people surfing the Internet. With WordPress, you are free to choose where to host your blog.

Using a managed hosting provider like WordPress.com allows you to outsource many of the more technical tasks of starting a blog, like:

  • Installation – You can skip uploading the files to a server, creating a database, or running the installation yourself.
  • Speed optimization – WordPress.com’s servers are optimized for WordPress and offer other speed features.
  • Security – You get daily security scans, automatic backups, brute-force protection, downtime monitoring, encryption, firewalls, DDoS protection, automatic software updates, and more with every plan. Don’t worry if you don’t know what half of this means. The bottom line is simply that your blog is super secure from being hacked.

All of the above allows you to fully concentrate on content creation and growing your blog. Simply choose a WordPress.com plan to get started.

Screenshot of pricing page, where users can choose a hosting plan.

Each plan comes with unlimited visitors, posts, and pages. You can even start with the Free plan and upgrade later, such as when you want to extend your blog’s functionality with plugins on the Business plan. Plus, if you go for the yearly option, every plan also includes a free domain for one year.

4. Select a WordPress blog theme

Themes control the design of a WordPress blog. Switching from one theme to another can make a huge difference in the look and feel of your blog. There are plenty of blog themes with design and layout elements specifically for blogging, making it easy to start. They even exist for different subjects like food, travel, etc.

A pair of WordPress blogs, with themes made for blogging.

To install one, log in to your WordPress blog, go to Appearance > Themes, and click the Blog category at the top.

Where to change your blog's theme.

Click on any theme you like for additional information and also to try out any style variations it comes with.

Example of a blog theme detail page.

You can apply it to your blog right then and there by clicking Activate this design. Alternatively, click Preview & Customize to view your current website in the new skin and make adjustments before activating it.

Example of Preview & Customize screen.

5. Add pages

At this point, you might want to jump straight into customizing your theme design and we’ll get to that. But, in order to do so, it helps to first get familiar with the basic workflow of how to edit content in WordPress.

A good way to ease yourself into it is to create pages. It uses a lot of the same principles but is less complex and, therefore, a good starting point.

You create a new page by going to Pages > Add New Page in your WordPress admin interface. The first thing you’ll see is a prompt with block patterns for different types of pages. They can work as a starting point and you can insert them with a click.

Add a page to your WordPress blog.

Alternatively, you can also start with a blank page.

Example of a blank page.

Insert page elements

In WordPress, basic design elements are called “blocks”. For example, the editor automatically creates a paragraph block when you write something and press the enter key.

You find a list of all available blocks when you click the big “+” button in the top left corner.

Options to add page elements.

They range from text elements and buttons to layout elements like columns and beyond. A click on any of them inserts it into the editor.

More detailed page elements.

You also have access to more pre-designed collections of blocks in the Patterns tab. Inserting them works the same way.

Where to find the Patterns tab.

You can also add blocks by clicking the small “+” button that appears when you place your cursor within the editor. Alternatively, type a forward slash (“/”) in any empty line followed by the block name.

Where to find the + button.

Every element in the editor is customizable. Click it and you’ll find an options bar at the top and additional customization options in the Settings sidebar.

Where to find the Settings sidebar.

Use the editor to create must-have pages for your blog, such as:

  • About page
  • Contact page
  • Legal pages like a privacy policy

6. Add a menu

Including your new pages in a navigation menu allows your visitors to reach them easily. Sitewide changes like this happen in the Site Editor. Enter it via Appearance > Editor.

Example of the Site Editor in WordPress.

You’ll quickly notice that it works the same way as the Page Editor, only that there are more site elements you can work on. For example, your theme likely already has a navigation menu. In this example, it appears as part of the header.

There are different ways to customize it. One is via the Navigation menu. Another is through Patterns and Header. Thirdly, you can also click the header element in the main editing window and then choose Edit.

Choose Edit.

In all cases, the element you want to edit is the Navigation block. Opening the Document Overview menu helps you find it more easily. Once active, it lets you add and subtract menu items and other elements, rename them, and more.

Where to find the Document Overview.

Note: In some themes you control menus in the Site Customizer instead. Find information about that here.

7. Customize theme design

While already in the Site Editor, you can also start to change the appearance of other parts of your blog.

Change global styles

Changing global design options like fonts, colors, etc. happens in the Styles menu on the right side of the screen.

Screenshot of the Styles menu.

Among other things, it lets you change:

  • Style presets – Switch between style variations your theme ships with.
  • Typography – Make changes to the font family, size, appearance and more for all text on your blog, from body copy to links and headings.
  • Colors – Define custom colors, try out existing palettes, and change the color of text, backgrounds, links, and beyond.
  • Layout – Define content width, global padding, and spacing.

For example, if you go to Colors > Background, you can change the background color of your blog with a few clicks.

Screenshot of where to change background colors.

Customize page templates

Page templates work like blueprints for certain content types. If you modify a template, the changes apply to all pieces of content of that kind.

You can access them via the Templates menu when you click on the WordPress logo in the Site Editor.

Where to find Templates settings.

One of the most decisive customizations you can make here is to determine how your posts appear on your blog page. Your theme most likely has a template called Blog Home for that.

Example of selecting an existing template.

Click to start editing it. Find the Query Loop block (again, use the Document Overview) and choose Replace.

Where to find the Query Loop block.

This will show you available patterns for displaying the main blog.

Where to find Available Patterns.

Click whichever you like to see it on the page.

Place the block where desired.

Customize it as needed. If you save now, your blog will adopt the new design.

8. Add blog categories

You should now have enough knowledge to customize the look of your blog. From here, it’s time to talk about how to create content, starting with categories.

Categories bring order to your blog posts and also clarify the topics of your blog to search engines. You manage them in Posts > Categories. Click the blue button to add a new category.

Where to add new blog categories.

Provide a name and, optionally, a description that can show up in category archive pages. You’re also able to create sub-categories this way.

Naming a new blog category.

Think of categories as broad topics that your blog is about. For example, a food blog would have categories like Recipes, Cooking Tips, and Product Reviews and from there subcategories like Breakfast, Meal Prep, and Cookbooks.

Start with 3-5 categories. If you have more than that, your blog topic might lack focus.

Later, you assign categories in the Post Editor sidebar.

Assigning a blog category to a post.

9. Develop a basic content strategy

In writing blog content, it helps to be strategic and develop a plan that will keep you on track.

The first step is to decide how often you want to publish a new post. This depends a lot on how much time you have available to invest. In the beginning, it’s more important to be consistent than to post often. Once a week or every other week is an okay goal to start with.

As for what to write about, you probably already have a few ideas for blog topics. Spend 10 minutes jotting down as many as you can.

Example list of blog topics.

After that, take another 10 minutes to score those ideas with numbers 1-3, the highest number being the best. Take your 3s and input them into tools like Google Keyword Planner, Semrush, or Ubersuggest. This will help you validate demand and also refine your exact key phrases.

ubersuggest

Then add all those left over to your calendar.

10. Write your first blog post

If you’ve made it this far, it’s finally time–you are going to start creating your first blog post. This can be a bit overwhelming at first, so let’s break it down into manageable steps.

Create an outline

A blog post outline gives you an overview of the general content and structure of your blog post. Here’s an example:

A sample of an outline.

It helps you determine the topic, angle, and main points. You can actually create it right in your WordPress blog. Go to the WordPress Post Editor (Posts > Add New Post) and open the Outline feature in the document overview.

Screenshot of the WordPress outline feature.

This shows the heading structure of your future post. Use h2 headings to determine main sections, then h3 headings to further divide them, and so forth. You can also create a list of points you want to make in each section if you already know them.

Start researching

The research phase is where you collect all the raw information you will mention in your blog post and bring it into the right order.

Filling in an outline with research.

This usually involves a lot of googling and reading the material that’s already out there. But you can also use books, your own expertise, or other sources.

You don’t need to write complete sentences here. Incomplete sentences and key phrases are enough.

Write a first draft

The main objective of your first draft is to turn your research notes into a cohesive text. This won’t be the final version and nobody else is going to see it, so shoot for volume rather than conciseness and speed over precision.

Seriously, you just want to vomit enough text onto the page that you have something to work with, so avoid sweating over specific sentences or editing while writing.

Edit and format

The editing phase is the most important part of the process. This is where you polish your draft, clarify your points, make sure the post progresses logically, and refine your writing. Besides research, this is where most of your effort should go and it often helps to do several rounds of editing.

Part of editing is formatting to ensure readability. Here are a few suggestions and best practices for that:

  • Include no more than 25 words per sentence
  • Use around three sentences per paragraph
  • Try to express one idea per paragraph
  • Keep sections short (under 300 words)
  • Use numbered and unnumbered lists

A great help is to input your content into the Hemingway App. On the Business plan and above, you can also install plugins like Yoast SEO and Rank Math that have a readability analysis.

Checking readability of a blog post in Yoast.

Add visuals

Visual content breaks up text, makes it more interesting, and clarifies and emphasizes your points. It can take many different forms, such as:

Note that you can directly embed images from Openverse and Pexels via the Block Inserter’s Media tab.

Where to find the Media tab.

Just search for a keyword and click when you find an image that you like to insert it.

Refine your headline

More people read your headline than will read the rest of your post, it can really make or break your article. To make sure it is the best it can be and get some practice, challenge yourself to write 25 of them.

If you are drawing a blank, feel free to plug it into your favorite AI tool for some input.

Using AI to generate ideas for headlines.

For example, Jetpack AI can also help you create a headline for your post.

Generating a blog post title with Jetpack AI.

In addition, you can use a free headline tool like Easy Peasy AI to further refine your ideas.

Screenshot of Easy Peasy Headline Analyzer.

11. Optimize your post for SEO

The aforementioned SEO plugins also help you optimize your blog post for search engines. For one, they allow you to set custom page titles and meta descriptions.

Editing Yoast meta data for SEO.

These show up prominently in search results.

Example of a title tag and meta description in a search result.

Customizing them makes sure they are engaging, inspire clicks, and don’t get cut off. You can also use Jetpack for this purpose.

SEO plugins additionally often come with content analysis models. When you input your main keyword, they tell you how well-optimized your post is.

Screenshot of an SEO analysis from Yoast.

An Important part that they will alert you to is using your keyword in your post slug, meaning the end of its URL.

Example of a blog post slug.

It’s best if you make it concise, no more than 3-5 words. Ideally, it should just be the main key phrase.

You can also further customize the entire URL structure of your blog under Settings > Permalinks.

Where to find settings to edit permalink structure.

Including categories can help further clarify your blog topics to search engines but it’s not a must. Just be sure not to change the permalink structure of an established blog because it will neutralize established links in search engines and lead to 404 errors.

Finally, make sure to include internal links in your blog post to related blog articles and other relevant pages. It will help visitors discover more information and also helps spread SEO value throughout your entire site.

Good starting points to learn more about SEO are Positionly’s blog SEO best practices and Moz’s Beginner’s Guide. You’ll also want to learn about image SEO.

12. Promote your blog posts

Besides SEO, additional promotion channels like social media and building an email list help you get your blog writing in front of more people.

All WordPress.com plans come with Jetpack, which you can find under Tools > Marketing > Connections. It allows you to automatically publish new blog content to selected social accounts.

Where to find the setting to add Connections.

You can also easily add social sharing buttons to your content using the Sharing Buttons block to make it easy for your readers to further spread the word. 

Example of social media sharing buttons on a WordPress blog.

In addition, WordPress.com has native functionality to build a newsletter. It allows you to collect subscribers, automatically send out new posts via email, schedule them ahead of time, and even monetize your newsletter.

You find options for that under Settings > Newsletter. It lets you offer different subscription options throughout your site and content. You can also set them up manually with the Subscribe block.

How to adjust newsletter settings in WordPress.com.

In addition, you customize the content and features of your emails as well as set up a welcome message to new subscribers. Detailed instructions in the documentation.

Make This the Year When You Start Your Blog!

Creating a blog, whether as a hobby, to build a personal brand, or to grow a business, is a rewarding experience. It allows you to share your passions with the world and claim your own spot on the web.

The process may seem overwhelming at first, but if you take it step by step, it’s both accessible and achievable for anyone willing to put in the effort. So, why wait? Bring your ideas to life, and start building something meaningful today. Launch your blog in just a few clicks on WordPress.com.

 [#item_full_content]

How to Start a Successful Blog: A 12-Step Guide for Beginners Read Post »

fediverse reactions header oqE9og
WordPress News

Improving Fediverse Engagement With the Reactions Block

We believe in the open web and interoperability between online publishing platforms. That’s why we’re excited about the Fediverse and are committed to shipping features that improve the way your site connects to the open web. Today, we’re introducing Likes, Reposts, and the Fediverse Reactions block, building on our commitment to decentralized publishing.

Introducing the Reactions Block

With the Reactions Block, likes and reposts from Mastodon and other Fediverse platforms are automatically added to the end of your posts (if you’re using the Site Editor). It’s even smart enough to hide itself on posts without Reactions. Here’s a look at Fediverse reactions in action:

To disable or customize its placement, click “Edit Site” in the admin bar, select the Content block, and adjust the settings:

toggle fediverse reactions

For older themes, you can manually add the block to any post or page.

But wait, that’s not all

We’ve been working over the past several months to improve your experience with WordPress.com. Here are two other recent enhancements we’re excited to share with you:

  • Push and email notifications. Get notified instantly when your posts are Liked or Reposted via the Jetpack app, dashboard, or email.
  • Reply to comments, federated. When someone comments from the Fediverse, your replies federate back, keeping the conversation visible on both sides. Likes and Reposts are treated like comments, allowing you to manage them directly in the WordPress admin interface. This feature has been live since early 2024, but it’s worth sharing now.

Have you connected your WordPress.com site to the Fediverse?

Fediverse integration is available to all WordPress.com users—including free plans—and for WordPress.org users via the ActivityPub plugin. We want to ensure that our tools are accessible to creators of all sizes, so that your work is accessible to all of your followers, everywhere.

Start receiving Likes, Reposts, and showcasing engagement today. Get started with our Enter the Fediverse guide.

 [#item_full_content]

Improving Fediverse Engagement With the Reactions Block Read Post »

studio sync wordpress com uHakO8
Ultranet Domains Hosting Blog, WordPress News

Build Locally, Deploy Globally: Meet Studio Sync for WordPress.com

Studio, our free and open source local WordPress development app on MacOS and Windows, is now seamlessly integrated with WordPress.com.

Our new Studio Sync feature provides Studio users with a fast, simple way to:

  1. Synchronize their local sites with their WordPress.com-hosted sites for easy development and deployments; and,
  2. Take a local site live with a WordPress.com hosting plan in just a few clicks.

With Studio Sync, taking your WordPress site from local development to production has never been more streamlined.

Seamless syncing between local and prod

Studio Sync makes it simple to publish your local WordPress site with powerful WordPress.com hosting. Here are a few of our favorite use cases:

  • Push and Pull with Ease: You can keep your local Studio sites connected to your WordPress.com site, so pushing or pulling will be as easy as clicking a button.
  • Flexible Syncing: Having complete freedom, you can connect a WordPress.com site to multiple Studio sites.
  • Team Collaboration: Multiple developers can connect a local Studio site to a shared WordPress.com site, making it easy to push and pull changes as a team.
  • Sync To and From Staging: If using staging sites are part of your development workflow, you can now easily push from your local Studio site to your WordPress.com staging site.
  • One-Click Bliss: No need to worry yourself with database dumps, manually syncing files over SFTP, or performing other monotonous manual steps. Synchronize your local and hosted sites at any time with just one click.

Connect your site

You can connect any of your WordPress.com sites on a Business plan or higher. Use built-in search to locate your site and quickly see if the site has a staging environment available.

The 'Connect a WordPress.com site' modal in the Studio app

Push and pull

Pull to synchronize your WordPress.com site changes with your local Studio site, or push to deploy your local Studio site changes to your WordPress.com site.

the Sync tab with one site connected in the Studio app

Launch your Studio site on WordPress.com

Ready to publish your local Studio site for all the world to see?

Simply click Connect site on the Sync tab, and then you’ll see an option to purchase a new hosting plan for your Studio site at WordPress.com.

a blue arrow pointing to a link that says 'Create a new WordPress.com site` within the Studio app

Ready to get started with Studio Sync?

You can start taking advantage of this new Studio Sync feature in just a few steps:

  1. Download and install Studio––for free on Windows and Mac.
  2. Login with your WordPress.com account.
  3. Create a new Studio site.
  4. Click on the Sync tab.
  5. Connect your site.
  6. Push changes to production or pull production to the Studio app.

Let us know what you think

We’d love to hear how you think this new Studio Sync feature will speed up your local development work. 

As a reminder, Studio is a free, open source tool, so we welcome any and all feedback in GitHub. Explore other Issues and create your own here.

You can also explore the documentation for more tips on using this new Sync feature.

 [#item_full_content]

Build Locally, Deploy Globally: Meet Studio Sync for WordPress.com Read Post »

how to make a personal website blog post header Itk83K
Ultranet Domains Hosting Blog, WordPress News

How to Create a Personal Website: A Detailed, Step-by-Step Guide

So, you are considering creating a personal website. Congratulations! In my opinion, that’s one of the smartest decisions you can make.

Building a website for yourself allows you to claim your own little part of the Internet. A space you fully control and that nobody can take away from you. Where you make the rules, determine the look and feel, and express yourself in any way you want.

If that sounds worth pursuing, this post covers everything you need to know. It will talk about the nature and benefits of a personal website, then give you step-by-step instructions on how to build one using WordPress. From picking a website address and basic design to creating pages, adjusting design elements like fonts and colors, and adding extra functionality—it’s all here.

What exactly is a personal website?

A personal website is pretty much what it sounds like. It’s a website that belongs to you and allows you to represent who you are and what you do in whatever way you want.

Example of a popular personal website.

You can control the design, content, functionality, and everything else about it.

Why would you want to build something like that for yourself?

Let’s talk about that for a minute.

Benefits of building your own website

Yes, there are other ways you can build a brand or profile online. For example, many people use social media as their main outlet. But, putting all your eggs into that particular basket is also risky.

Example of a social media profile.

There’s always a chance you can get banned or hit with an algorithm change that cuts your reach. Anybody who is old enough to remember when you could build an audience for your Facebook page without spending money on ads can tell you that much.

Or, just imagine, your favorite outlet gets bought by a person or company you don’t like and don’t want to support, so you feel compelled to start over on another platform. Sounds far-fetched, I know, but it could mean all your hard work is gone from one day to the next.

This can happen because you don’t actually own your social media account. The platform you are on does, including all the content you publish. And what’s not yours can be taken away from you.

In contrast to that, creating your own personal website, especially if you do it with a system like WordPress, means building something permanent. You fully own it and can take it with you wherever you want.

Plus, it allows you to do things that you can’t always do on social media, like:

  • Change the design
  • Publish detailed, long-form content
  • Sell goods and services
  • Tell people more about yourself
  • Get inbound traffic from search engines
  • Show off your portfolio
  • Build a central hub to consolidate all your online outlets

And much more…

Types of personal websites

So far, the definition of a personal website has been relatively broad. The reason for that is that it can take many forms depending on your purpose:

  • About Me website – Simply introduce yourself and who you are. It can work as an online resume, business card, or just a fun project.
  • Blog – If you are going the blogging route, you can dive deeply into a topic that interests you, grow a following, build expertise, and maybe even create a business.
  • Newsletter – You can also use a personal website to build a newsletter. This works well when combined with a blog. You can use content to attract an audience and then get them on the newsletter to stay in contact easily.
  • Portfolio – If you are an artist or any type of creative professional, a personal website is where you can show off your portfolio (also works for developers). It gives people an impression of what you can do and also allows them to get in touch with you directly, e.g. via a contact form.

Thankfully, as you will see below, the process of creating a personal website is also very flexible, so it can accommodate whatever you have in mind.

How to make a personal website

I’ve been building websites for more than ten years. If I were in your position and wanted to create a website for myself for the first time, here’s how I would do it.

1. Choose your hosting plan

Hosting basically means renting space on a computer that’s connected to the Internet. That’s where you save your website files so that others can access them with their browser.

image 49

With WordPress, you are free to choose your hosting provider since it runs on almost any server setup. WordPress.com is a great option because it’s managed hosting.

That means it takes care of a lot of the more technical parts of running a personal website, namely:

  • Installation – The website is automatically created for you. There’s no need to upload files to a server, create a database, or run an installation.
  • Ease of Use – Everything that has to do with managing the website happens in the same, beginner-friendly interface. You don’t need to switch back and forth between the hosting provider panel and the website; it’s all in the same place.
  • Speed – Performance is a very important topic for user experience. WordPress.com’s servers get the most out of the CMS and store copies of your website across 28+ data centers for super fast delivery.
  • Security Jetpack is included on every WordPress.com site and provides daily security scans, automatic backups, brute-force protection, downtime monitoring, and more. Plus, you get encryption, firewalls, activity monitoring, DDoS protection, and automatic software updates with every plan.

While you can also implement the above manually, by choosing managed hosting, you can fully focus on the important parts of creating a personal website instead: its design, content, and growth.

If that sounds like the right choice for you, all you need to do is pick a WordPress.com plan.

Plan options from WordPress.com.

The Personal and Premium plans are most suitable for simpler websites with fewer pages and for writing a blog. If you want to add extra functionality via plugins or even sell things on your personal site, Business or Commerce might be more your speed.

Each plan comes with unlimited visitors, posts, and pages. If you go for a yearly plan, you also get a free domain for one year. That brings us to the next point.

2. Pick a domain name

The domain name is what your visitors will type into their browser bar to reach your personal website.

Illustration of a URL and all its components.

An important aspect to pay attention to here is the domain ending or top-level domain (TLD). You know, the .com, .org, or .net  part.

For example, if your site is for a particular country and language, it can make sense to use a country-specific domain ending like .de (for Germany) or .co.uk for the United Kingdom. Another example is that as a writer or artist, you could also use a .blog or .portfolio.

The main part of your domain, the name, is also important to think about. It should be easy to remember and convey trust. You can find more tips in this post and the video below.

Domains are also available at WordPress.com.

Domain search bar on WordPress.com.

Simply search for your desired name and hit enter. The tool will tell you if it’s available, the cost, and alternatives.

Choosing from a list of available domain names.

Select your choice and go through the purchasing process. As mentioned, if you host your website at WordPress.com, you get a free domain with an annual plan that can be automatically assigned to your site.

But don’t worry if you can’t make up your mind right now. You can skip this step in the beginning and settle on your domain name at a later time. Your website will live at a temporary address until then.

3. Select a theme

In WordPress, themes are what control the basic design. They are website blueprints that contain colors, fonts, layouts, and other design elements. As a consequence, you can alter your WordPress website’s look and feel—quite dramatically—by simply activating another theme.

switch themes
Same website, different themes.

Another benefit is that there are themes specialized in building particular types of websites like restaurant sites, travel blogs, photography sites, and more. They come with features, layouts, and design elements specifically for these use cases, making getting started much easier.

In addition, themes are just starting points, not destinations. You can also still customize them completely later on as you’ll soon see.

Applying a theme to your personal website is super easy. You can check what’s available by going to the theme directory or Appearance > Themes in your WordPress.com admin interface.

Theme selection settings in the WordPress.com admin.

Use the controls on top to search for a particular theme or filter by topics and plan. Click on any of them to learn more about it.

Example of a WordPress theme detail page.

You’ll find a description and list of features as well as a preview on the right. Many themes come with style variations that apply different color schemes and fonts. You can try them out directly on this page.

Control settings for style variations within a WordPress theme.

In addition, you can see what your current website would look like with the new theme by clicking the Preview & Customize button. The editor that appears allows you to customize it further, e.g., try out style variations on your site.

Example of theme preview and customization options.

You can save your changes and activate the theme immediately with a click on the button in the lower-left corner. Alternatively, do it from inside the theme menu.

4. Add a homepage and customize it

With the basic website in place, it’s time to learn how to create and customize pages, starting with your homepage.

Set up a new page

Navigate to Pages > Add New Page in your WordPress.com admin interface.

Where to add a new page.

This will open the WordPress Page Editor. When creating a fresh page, you’ll be prompted with a collection of pre-defined layouts you can use to quickly populate it.

Example of the WordPress Page Editor.

These layouts include categories such as About, Services, Contact, Blog, and more. If you find something you like, simply click it to insert the layout into the editor. Alternatively, you can start with a blank page and completely customize it yourself.

Adjusting homepage layout.

Add page elements

The WordPress Page Editor works with blocks, which are singular content elements of different types. For example, a paragraph block is automatically created when you write and press the Enter key. Other examples for blocks are:

  • Headings
  • Lists
  • Buttons
  • Images
  • Tables
  • Columns
  • Grids

You find a full list of available blocks when you click the big blue “+” button in the top left corner.

Full list of available blocks.

They are ordered by category, and you can also search for specific blocks. Clicking on any of them inserts it into the editor at the current position of your cursor.

Example of the Block inserter.

In addition to individual blocks, the Patterns tab offers pre-designed collections of blocks, such as contact forms, galleries, team member sections, newsletter sign-ups, and more. These patterns can help you quickly create layouts without having to build everything from scratch. You insert them the same way.

Example of available patterns.

Another method to add blocks is by clicking the small “+” button that appears when you place your cursor within the editor. It lets you search for a block by name and click it to insert.

Search and insert blocks.

Even easier, type a forward slash (“/”) in any empty line, start typing the block name, and select it using your mouse or keyboard.

Typing forward-slash to use Inserter.

To understand and manage the structure of your page, use the Document Overview tool in the top left corner.

Using the Document Overview tab.

Customize blocks

Clicking on a block brings up an options bar at the top and additional customization settings in the sidebar.

Customizing a block.

The options vary depending on the block type. For instance:

  • A paragraph block lets you adjust font size, color, text alignment, and more.
  • A button block allows you to customize alignment, style, color, dimensions, and shadows.

It takes some trying out to know what you can change for which type of block.

Be aware that these settings apply only to the specific block on the current page. For global design changes—like applying a new font to all headings—you’ll need to use the global Styles settings, covered later.

Once you’ve designed your homepage to your liking, save your changes and publish the page.

Set it as your front page

To make your newly created page your homepage, go to Settings > Reading in the WordPress.com admin dashboard. At the top, you’ll see two drop-down menus that allow you to define which page serves as your homepage and which one displays your blog posts.

set as front page

Select your new page under Your homepage displays and save the settings.

Browsing homepage display options.

Your homepage is now live! For more information about pages in general, check the documentation.

5. Add more pages and a menu

You can use the same workflow as above to create additional must-have pages for your personal website, such as:

  • About page
  • Contact page
  • Services

After that, you’ll likely want to include them in a navigation menu so that your visitors can reach them easily.

Sitewide changes like this happen in the Site Editor. You can access it via Appearance > Editor. The Site Editor works similarly to the Page Editor but allows you to edit additional parts of your website.

Accessing the Site Editor.

In many cases, your theme already includes a navigation menu. In our example, it appears as part of the header.  One way to edit it is to click Patterns and Header, though you might need to know the name of your header pattern to pick the right one.

Finding and controlling settings for navigation menu, within a theme that includes one in the header.

Alternatively, click the header element in the main editing window and then choose Edit.

Click into header element to edit it.

Either gets you to the editor below.

Editing a header template part.

Here, select the Navigation block (again, Document Overview is your friend).

Finding the Navigation block.

You can then add and subtract menu items and other elements, rename them, and also change some design options in the sidebar.

Editing, adding, and subtracting menu items.

Make adjustments as needed, then save to make them appear on your website.

Example of a finalized menu design.

You can also use this workflow to make other adjustments to your header like adding a search block. It also works for changing your footer.

Note: In some themes you control menus in the Site Customizer instead. You can find more information here.

6. Customize fonts and colors

The Site Editor is also where you can make global design changes for your website. You’ll find these options in the Styles menu in the top right corner of the editor.

Where to find the Styles menu.

Here’s what you can change:

  • Browse styles – Switch between style variations, color palettes, and font combinations your theme ships with.
  • Typography – Make changes to the font family, size, appearance, line height, letter spacing, and more for body text, links, headings, buttons, and other text elements on your site. You can also change font size presets here.
  • Colors – Add colors and gradients to use in the editor, try out existing color palettes, and customize colors for text, backgrounds, links, buttons, headings, and more.
  • Background – Give your website a background image.
  • Shadows – Set up presets for drop shadows to use them in the editor.
  • Layout – Define basic layout settings such as content width, global padding, and block spacing.
  • Blocks – Make design changes to particular block types that apply sitewide.

A cool feature to preview changes in real-time, is the Style Book option in the Styles menu. It provides an overview of how your site’s design elements will look.

Using the Style Book option.

Let’s go over some use cases to help you understand all of this information

Change heading fonts

You change the font of your headings under Typography and then Headings. To make things easier, open the Text tab in the Style book to see all headings at once.

Where and how to change heading fonts.

Pick which heading type to customize, then apply your changes. For example, if you want to prevent your H1 headings from turning into all caps, choose the “H1” option, then set Letter Case to None.

Example of how to adjust letter casing.

You can consult the documentation to learn more about custom fonts.

Set a website background color

To change the background color of your website, go to Colors and then click Background.

Where to find Background Colors.

Pick from the theme palette (you can choose a different one at top) or define a custom hue. That’s it.

Choosing colors from the theme palette.

Modify button shadow

To make changes to a single block, click Blocks.

Select Blocks.

Either scroll to the button block in the list or use the search functionality to find it. Click it.

Where to find Button Block controls.

Find the Border & Shadow option at the bottom. A click on Drop shadow allows you to apply different kinds of shadow effects to all of your buttons.

Example of using border and shadow options.

7. Edit page templates

Templates define the design and layout for certain content types across your website. To access them while in the Site Editor, click on the WordPress logo and then Templates.

Where to find Page Templates.

You’ll see a list of all existing templates on your site such as single posts, pages, and archives. For example, you might want to adjust the layout of your blog posts. For that, click the Single Posts template, to start editing it.

Example of Single Posts template being edited.

Let’s say your goal is to switch the position of the post meta to appear under the title.

Switching the placement of post meta.

For that, simply choose the post-meta block and move it up.

Select the post meta block and move it.

When you now save, the changes apply to all blog posts on your website.

Save to apply all changes.

You can do the same for all other types of content. More information about templates here.

8. Install plugins

Plugins let you change and enhance the functionality of your personal website. If you are on a Business or Commerce plan, you can install them in the Plugins menu.

Where to add new plugins.

Plugins cover a wide range of features that they can contribute to your website, such as:

  • Improve search engine optimization (SEO)
  • Add an Instagram feed
  • Limit login attempts
  • Accept payments with different providers
  • Connect your website to Google Analytics

You can find plugins by using the search functionality at the top or browsing through categories. To learn more about a plugin, click on it. If you like what you see, click the big Install and Activate button.

Where to find plugin installation button.

Once the installation is finished, you can start using the plugin’s functionality right away.

Example of successfully installed theme.

For inspiration on what plugins to install, check the most popular ones. You can also find help on this topic in the documentation.

It’s time to build your online home

Your personal website is your own piece of online real estate. It’s yours to do with as you please and, unlike other online profiles, can’t be taken from you.

Follow the step-by-step instructions above to create your personal site and start building your presence online today.

 [#item_full_content]

How to Create a Personal Website: A Detailed, Step-by-Step Guide Read Post »

bloganurary recap blog header HUEsOa
Ultranet Domains Hosting Blog, WordPress News

Congratulations to Everyone Who Completed Bloganuary 2024! 

On January 1, you came together from all corners of the globe, ready to answer the call of our Bloganuary challenge and write for 31 straight days. And, oh, how you wrote! 

6,140 people published at least one blog post during the challenge. A total of 33,639 blog posts were published throughout the month, answering the daily prompts and tagged with #bloganuary. All those posts reached an audience of 6,262,733 readers. That’s more than the population of Denmark!

But that’s just the beginning.

  • 401,355 people clicked the “Like” button on Bloganuary posts.
  • 34,403 people left comments.
  • Posts were written in 11 languages.
  • 152 people published blog posts answering all 31 prompts—wow!

Though we’re incredibly proud of all our Bloganuary participants, that last number is especially impressive. Life has a way of getting in the way of any creative pursuit, yet 152 bloggers stared down writer’s block, hectic schedules, overtime at work, family obligations, and who knows what else—and still published a blog post every. Single. Day.

Here’s to you, the winners of Bloganuary 2024!

Thank you to everyone who participated in Bloganuary last month. The community of bloggers grew this year more than ever, and we can’t wait to see who takes on the challenge next year! 

Help us make Bloganuary even better by taking 3 minutes to share your thoughts about the challenge in the survey below:

 

Bloganuary 2024 by the numbers. 

Read More

by: February 2024 – WordPress.com News

Congratulations to Everyone Who Completed Bloganuary 2024!  Read Post »

blog header402x 6 yqOLzm
Ultranet Domains Hosting Blog, WordPress News

Small Changes, Big Impact: A Look at What’s New In the WordPress Editor 

The WordPress project team is continuously improving the Site Editor—your one-stop shop for editing and designing your site.

The latest batch of updates—Gutenberg 17.4 and 17.5—include a handful of small but powerful changes designed to improve both your WordPress experience and that of your site’s visitors. 

Let’s take a look at what’s new. 

More robust style revisions 

image 3
Image credit: WordPress.org

When you’re in the zone making changes to the look and feel of your site, you sometimes hit a dead end or realize that the version you had three or four font and color tweaks ago was a bit better. The updated style revisions pane gives you a robust, detailed log of the design changes you’ve made and makes turning back the clock easier with a one-click restore option to take you back to that perfect design.

Newly added pagination and more granular details make this feature even more powerful. 

You can access style revisions from the Site Editor by clicking the “Styles” icon on the top right of the page, and then clicking the “Revisions” clock icon. 

Unified preferences panel 

image 2
Image credit: WordPress.org

It’s now much easier to manage your site and post-editing preferences, which have been combined and enhanced in the latest update. In addition to familiar settings, you’ll find new appearance and accessibility options, and an “allow right click” toggle which allows you to override stubborn browser defaults. You can access your preferences by heading to the three-dot menu at the top right of the editor and clicking “Preferences” at the bottom. 

Randomized gallery images 

The Gallery Block’s always been a great way to show off a collection of photos or images. And now there’s a fun new setting to randomize the order in which those images appear every time the page or post is loaded by a new visitor. 

You can turn this setting on with a toggle found at the bottom of the block settings pane: 

image 1

Streamlined edits in List View 

image
Image credit: WordPress.org

Not everybody knows about the Site Editor’s List View, but it can make editing your site, posts, and pages significantly faster and easier. A new addition to the List View makes editing even more convenient: just right-click any item in the list to open up the settings menu for the selected block. 

Even small changes can make a big difference to your workflow, and your site visitor’s overall experience. 

We’d love to hear what you think about the new features when you’ve had a chance to take them for a test drive! 

 

A handful of small but potent changes to the Site Editor have improved the WordPress.com experience for both you and your visitors. 

Read More

by: February 2024 – WordPress.com News

Small Changes, Big Impact: A Look at What’s New In the WordPress Editor  Read Post »

design your own theme blog header402x 1 AkCSon
Ultranet Domains Hosting Blog, WordPress News

Unleash Your Creativity With Our “Design Your Own Theme” Webinar

Note: This feature has been deprecated and replaced with Zoom Out in WordPress 6.7. Visit this post to learn more.

Selecting the design of your website is a critical initial step in establishing your online identity. Our “Design Your Own Theme” feature is a game-changer, offering a variety of Block Patterns to create a unique aesthetic. These Block Patterns provide tremendous flexibility, enabling you to mix and match design elements with ease, ensuring a truly custom and cohesive look across your site.

With an intuitive drag-and-drop interface, our design assembler enables quick layout and style changes. You can easily add, remove, or reposition sections of your website, bypassing the need for complex manual editing. Ultimately, it allows you to explore our diverse design concepts in a user-friendly setting.

We’re offering two sessions of this informative webinar—February 13 and February 28—where we will illustrate how to build a custom website using this innovative tool. The webinar is 100% free to attend and will include a live Q&A session to address all your questions.

More February webinars: SEO Foundations and AI-Assisted WordPress

SEO Foundations

Elevate your website’s visibility with our “SEO Foundations” webinar. Delve into essential techniques as well as how our built-in tools can transform your site’s search engine performance. Our Happiness Engineers will guide you through integrating effective SEO strategies so that readers and customers will find you with ease.

AI-Assisted WordPress

Transform your approach to content creation with our “AI-Assisted WordPress” webinar. We’ll guide you through using our innovative Jetpack AI Assistant, which has been built help you brainstorm, edit, and generally assist all your writing efforts. Join us and step into a new realm of efficient and creative content production.

 

Explore how WordPress.com’s innovative new design tool makes creating your site surprisingly easy and fun. 

Read More

by: February 2024 – WordPress.com News

Unleash Your Creativity With Our “Design Your Own Theme” Webinar Read Post »

banner 2 cDQlfS
Ultranet Domains Hosting Blog, WordPress News

My Condolences, You’re Now Running a Billion-Dollar Business

Halfway through a relaxing winter break with my family, I opened Slack for a quick dopamine hit. The message I saw waiting from Matt, Automattic’s CEO, was quite the surprise:

Would you be interested in running WordPress.com while I’m on sabbatical?

In honesty, my initial reaction was “No, not really.” It seemed like a lot of work, stressful, etc. But, I named my last team YOLO for a reason: the answer is always “Yes,” because you only live once.

Many teams at Automattic use the “red / yellow / green check-in” as a communication tool. At nearly the one-month mark of running WordPress.com, I can safely say I’ve experienced the entire rainbow of emotional states. Today, I’d like to share a few of my learnings with the hope that they help you during your leadership journey.

Also, one pro tip: don’t open Slack on vacation.

Problem #1: I’m receiving 50x more pings

image3

My former team is largely based in Europe, so their day started much earlier than mine. When I signed on for the morning, I’d usually have a few things to respond to before I dived into work.

These days, I drink from the firehose. I wake up to dozens of P2 mentions, Slack DMs, and other communication threads. I clear them out, and then they just pile up again.

Solution: Delegate, delegate, delegate

image7

Ideally, I’d like to run the business while skiing fresh powder. In order to do so, I need a great team whom I can trust to get the job done.

For our recent efforts, the WordPress.com leadership team traveled a collective 160 hours to meet in NYC. While there, we focused on identifying goals that answered the question: “If we did this in the next 90 days, would it be transformative to the business?” Everyone went home with a specific set of goals they own. Knowing what we’re trying to do and who is responsible for what are two key elements of delegation.

Additionally, I also encourage the team on a daily basis to:

  • Actively work together before they come to me. On a soccer field, the team would get nowhere if they had to ask the coach before every pass.
  • Come to me with “I intend to,” not “What should I do?” Actively acting on their own and reporting progress represents the highest level of initiative.

Ultimately, I should be the critical point of failure on very few things. When something comes up, there should be an obvious place for it within the organization.

Problem: Something is always on fire

image2

I am a very “Inbox Zero” type of person. Running WordPress.com breaks my brain in some ways because there’s always something broken. Whether it’s bugs in our code, overloaded customer support, or a marketing email misfire, entropy is a very real thing in a business this large.

Even more astounding is the game of “whac-a-mole”: when making a tiny change to X, it can be difficult to detect a change in Y or take Y down entirely. There’s always something!

Solution: Focus on the next most important thing

image5

When dealing with the constant fires and the constant firehose, I’ve found a great deal of comfort in asking myself: “What’s the most important thing for me to work on next?”

Leadership is about results, not the hours you put in. More often than not, achieving these results comes from finding points of leverage that create outsized returns.

At the end of the day, the most I can do is put my best effort forth.

Problem: We’re moving too slowly

image4

By default, nothing will ever get done in a large organization. There are always reasons something shouldn’t be done, additional feedback that needs to be gathered, or uncertainties someone doesn’t feel comfortable with.

If you’ve gotten to the point where you’re a large organization—congratulations! You must’ve done something well along the way. But, remember: stasis equals death. Going too slowly can be even more risky than making the wrong decision.

Solution #3: “70% confident”

image1

I think “70% confident” has been kicking around for a while, but Jeff Bezos articulated it well in his 2016 letter to shareholders (emphasis mine):

Most decisions should probably be made with somewhere around 70% of the information you wish you had. If you wait for 90%, in most cases, you’re probably being slow. Plus, either way, you need to be good at quickly recognizing and correcting bad decisions. If you’re good at course correcting, being wrong may be less costly than you think, whereas being slow is going to be expensive for sure.

In leadership, I find “70% confident” to be a particularly effective communication tool. It explicitly calls out risk appetite, encourages a level of uncertainty, and identifies a sweet spot between not enough planning and analysis paralysis. Progress only happens with a certain degree of risk.


I’m excited to start sharing what we’ve been working on. Stay tuned for new developer tools, powerful updates to WordPress.com, and tips for making the perfect pizza dough. If you’d like some additional reading material, here is a list of my favorite leadership books.

Original illustrations by David Neal.

 

A few things I’ve learned during my interim role of running WordPress.com 

Read More

by: February 2024 – WordPress.com News

My Condolences, You’re Now Running a Billion-Dollar Business Read Post »

blog header403x 6 qS4BDF
Ultranet Domains Hosting Blog, WordPress News

Hot Off the Press: New WordPress.com Themes for February 2024

The WordPress.com team is always working on new design ideas to bring your website to life. Check out the latest themes in our library, including great options for gamers, writers, and anyone else who creates on the web.


Spiel

spiel wordpress.com theme 1

This magazine-style theme was built with gaming bloggers in mind, but is versatile enough to work exceptionally well for nearly any type of budding media empire. Using a classic blogging layout, we’ve combined modern WordPress technology—Blocks, Global Styles, etc.—with a nostalgic aesthetic that hearkens to the earlier days of the internet.

Click here to view a demo of this theme.


Allez

allez wordpress.com theme

Whether you’re a casual observer or a diehard rain-or-shine follower, fandom means a lot of things to a lot of people. Allez is a perfect theme to chronicle that part of who you are. Built with sports-focused content in mind, the layout, styling, and patterns used all speak to that niche. That said, WordPress is versatile enough that if you like the overall feel of Allez, it can easily be customized to your particular endeavor.

Click here to view a demo of this theme.


Strand

strand wordpress.com theme

Strand is a simple newsletter and blogging theme with a split layout, similar to Poesis. We placed the newsletter subscription form in the sticky left column, so that it’s always visible and accessible. It’s a simple design, but one we really like for the minimalist writer who puts more emphasis on words than visual panache.

Click here to view a demo of this theme.


Bedrock

bedrock wordpress.com theme

Inspired by the iconic worlds of Minecraft and Minetest (an open-source game engine), this blogging theme was designed to replicate the immersive experience of these games. While encapsulating the essence of virtual realms, we also wanted to ensure that the theme resonated with the Minecraft aesthetic regardless of the content it hosts.

At the heart of Bedrock is a nostalgic nod to the classic blog layout, infused with a distinctive “mosaic” texture. The sidebar sits confidently on every page and houses a few old-school elements like a tag cloud, a blogroll, and recent posts, all rendered with a touch of the game’s charm. If this theme speaks to you, give it a shot today.

Click here to view a demo of this theme.


Nook

nook wordpress.com theme

Nook is another blogging theme that offers a delightful canvas for your DIY projects, delicious recipes, and creative inspirations. It’s also easily extensible to add paid products or courses. Our aim here was to create an elegant and timeless look with a sense of warmth and familiarity. The typography and color palette feature high-contrast elements that evoke coziness and comfort.

Click here to view a demo of this theme.


To install any of the above themes, click the name of the theme you like, which brings you right to the installation page. Then click the “Activate this design” button. You can also click “Open live demo,” which brings up a clickable, scrollable version of the theme for you to preview.

Premium themes are available to use at no extra charge for customers on the Explorer plan or above. Partner themes are third-party products that can be purchased for $79/year each.

You can explore all of our themes by navigating to the “Themes” page, which is found under “Appearance” in the left-side menu of your WordPress.com dashboard. Or you can click below:

 

Five of our favorite new themes. 

Read More

by: February 2024 – WordPress.com News

Hot Off the Press: New WordPress.com Themes for February 2024 Read Post »

new developer wordpress com home twenty twenty four child j8vjG0
Ultranet Domains Hosting Blog, WordPress News

How We Built a New Home for WordPress.com Developers Using the Twenty Twenty-Four Theme

In the last few weeks, our team here at WordPress.com has rebuilt developer.wordpress.com from the ground up. If you build or design websites for other people, in any capacity, bookmark this site. It’s your new home for docs, resources, the latest news about developer features, and more. 

The new developer.wordpress.com homepage with a black background, a pixelated W logo, and the headline 'Powerful WordPress Hosting for Developers'

Rather than creating a unique, custom theme, we went all-in on using Twenty Twenty-Four, which is the default theme for all WordPress sites. 

That’s right, with a combination of built-in Site Editor functionalities and traditional PHP templates, we were able to create a site from scratch to house all of our developer resources. 

Below, I outline exactly how our team did it.

A Twenty Twenty-Four Child Theme

The developer.wordpress.com site has existed for years, but we realized that it needed an overhaul in order to modernize the look and feel of the site with our current branding, as well as accommodate our new developer documentation

You’ll probably agree that the site needed a refresh; here’s what developer.wordpress.com looked like two weeks ago:

The old developer.wordpress.com homepage with the headline 'Howdy, Developers' on a blue background with several CTAs to get started and try WordPress.com for free

Once we decided to redesign and rebuild the site, we had two options: 1) build it entirely from scratch or 2) use an existing theme. 

We knew we wanted to use the Site Editor because it would allow us to easily use existing patterns and give our content team the best writing and editing experience without them having to commit code.

We considered starting from scratch and using the official “Create Block Theme” plugin. Building a new theme from scratch is a great option if you need something tailored to your specific needs, but Twenty Twenty-Four was already close to what we wanted, and it would give us a headstart because we can inherit most styles, templates, and code from the parent theme.

We quickly decided on a hybrid theme approach: we would use the Site Editor as much as possible but still fall back to CSS and classic PHP templates where needed (like for our Docs custom post type).

With this in mind, we created a minimal child theme based on Twenty Twenty-Four.

Spin up a scaffold with @wordpress/create-block

We initialized our new theme by running npx @wordpress/create-block@latest wpcom-developer

This gave us a folder with example code, build scripts, and a plugin that would load a custom block.

If you only need a custom block (not a theme), you’re all set.

But we’re building a theme here! Let’s work on that next.

Modify the setup into a child theme

First, we deleted wpcom-developer.php, the file responsible for loading our block via a plugin. We also added a functions.php file and a style.css file with the expected syntax required to identify this as a child theme. 

Despite being a CSS file, we’re not adding any styles to the style.css file. Instead, you can think of it like a documentation file where Template: twentytwentyfour specifies that the new theme we’re creating is a child theme of Twenty Twenty-Four.

/*
Theme Name: wpcom-developer
Theme URI: https://developer.wordpress.com
Description: Twenty Twenty-Four Child theme for Developer.WordPress.com
Author: Automattic
Author URI: https://automattic.com
Template: twentytwentyfour
Version: 1.0.0
*/

We removed all of the demo files in the “src” folder and added two folders inside: one for CSS and one for JS, each containing an empty file that will be the entry point for building our code.

The theme folder structure now looked like this:

A WordPress child theme folder structure

The build scripts in @wordpress/create-block can build SCSS/CSS and TS/JS out of the box. It uses Webpack behind the scenes and provides a standard configuration. We can extend the default configuration further with custom entry points and plugins by adding our own webpack.config.js file. 

By doing this, we can:

  1. Build specific output files for certain sections of the site. In our case, we have both PHP templates and Site Editor templates from both custom code and our parent Twenty Twenty-Four theme. The Site Editor templates need minimal (if any) custom styling (thanks to theme.json), but our developer documentation area of the site uses a custom post type and page templates that require CSS.
  2. Remove empty JS files after building the *.asset.php files. Without this, an empty JS file will be generated for each CSS file.

Since the build process in WordPress Scripts relies on Webpack, we have complete control over how we want to modify or extend the build process. 

Next, we installed the required packages:

​​npm install path webpack-remove-empty-scripts --save-dev

Our webpack.config.js ended up looking similar to the code below. Notice that we’re simply extending the defaultConfig with a few extra properties.

Any additional entry points, in our case src/docs, can be added as a separate entry in the entry object.

// WordPress webpack config.
const defaultConfig = require( '@wordpress/scripts/config/webpack.config' );

// Plugins.
const RemoveEmptyScriptsPlugin = require( 'webpack-remove-empty-scripts' );

// Utilities.
const path = require( 'path' );

// Add any new entry points by extending the webpack config.
module.exports = {
	...defaultConfig,
	...{
		entry: {
			'css/global':  path.resolve( process.cwd(), 'src/css',   'global.scss' ),
			'js/index': path.resolve( process.cwd(), 'src/js', 'index.js' ),
		},
		plugins: [
			// Include WP's plugin config.
			...defaultConfig.plugins,
			// Removes the empty `.js` files generated by webpack but
			// sets it after WP has generated its `*.asset.php` file.
			new RemoveEmptyScriptsPlugin( {
				stage: RemoveEmptyScriptsPlugin.STAGE_AFTER_PROCESS_PLUGINS
			} )
		]
	}
};

In functions.php, we enqueue our built assets and files depending on specific conditions. For example, we built separate CSS files for the docs area of the site, and we only enqueued those CSS files for our docs. 

<?php

function wpcom_developer_enqueue_styles() : void {
    wp_enqueue_style( 'wpcom-developer-style',
        get_stylesheet_directory_uri() . '/build/css/global.css'
    );
}

add_action( 'wp_enqueue_scripts', 'wpcom_developer_enqueue_styles' );

We didn’t need to register the style files from Twenty Twenty-Four, as WordPress handles these inline.

We did need to enqueue the styles for our classic, non-Site Editor templates (in the case of our developer docs) or any additional styles we wanted to add on top of the Site Editor styles.

To build the production JS and CSS locally, we run npm run build

For local development, you can run npm run start in one terminal window and npx wp-env start (using the wp-env package) in another to start a local WordPress development server running your theme.

An active wpcom-developer child theme on a local WordPress installation

While building this site, our team of designers, developers, and content writers used a WordPress.com staging site so that changes did not affect the existing developer.wordpress.com site until we were ready to launch this new theme.

theme.json

Twenty Twenty-Four has a comprehensive theme.json file that defines its styles. By default, our hybrid theme inherits all of the style definitions from the parent (Twenty Twenty-Four) theme.json file. 

We selectively overwrote the parts we wanted to change (the color palette, fonts, and other brand elements), leaving the rest to be loaded from the parent theme. 

WordPress handles this merging, as well as any changes you make in the editor. 

Many of the default styles worked well for us, and we ended up with a compact theme.json file that defines colors, fonts, and gradients. Having a copy of the parent theme’s theme.json file makes it easier to see how colors are referenced.

You can change theme.json in your favorite code editor, or you can change it directly in the WordPress editor and then download the theme files from Gutenberg.

WordPress settings with a red arrow pointing to the Export tool

Why might you want to export your editor changes? Styles can then be transferred back to code to ensure they match and make it easier to distribute your theme or move it from a local development site to a live site. This ensures the Site Editor page templates are kept in code with version control. 

When we launched this new theme on production, the template files loaded from our theme directory; we didn’t need to import database records containing the template syntax or global styles.

Global styles in SCSS/CSS

Global styles are added as CSS variables, and they can be referenced in CSS. Changing the value in theme.json will also ensure that the other colors are updated.

For example, here’s how we reference our “contrast” color as a border color:

border-color: var(--wp--preset--color--contrast);

What about header.php and footer.php?

Some plugins require these files in a theme, e.g. by calling get_header(), which does not automatically load the Site Editor header template. 

We did not want to recreate our header and footer to cover those cases; having just one source of truth is a lot better.

By using do_blocks(), we were able to render our needed header block. Here’s an example from a header template file:

<head>
<?php
wp_head();
$fse_header_block = do_blocks( '<!-- wp:template-part {"slug":"header","theme":"a8c/wpcom-developer","tagName":"header","area":"header", "className":"header-legacy"} /-->' );
?>
</head>
<body <?php body_class(); ?>>
<?php
echo $fse_header_block;

Our new home for developers is now live!

Check out our new-and-improved developer.wordpress.com site today, and leave a comment below telling us what you think. We’d love your feedback. 

Using custom code and staging sites are just two of the many developer features available to WordPress.com sites that we used to build our new and improved developer.wordpress.com.

If you’re a developer and interested in getting early access to other development-related features, click here to enable our “I am a developer” setting on your WordPress.com account.

the Developer Features page on WordPress.com with an "I am a developer" toggle and cards displaying developer features like SFTP, SSH, WP-CLI, Staging sites, and Custom code

 

The WordPress.com team recently rebuilt developer.wordpress.com using a modified version of the Twenty Twenty-Four default WordPress theme. Here’s how they did it. 

Read More

by: February 2024 – WordPress.com News

How We Built a New Home for WordPress.com Developers Using the Twenty Twenty-Four Theme Read Post »

blogging for beginners blog post image only oWswcg
Ultranet Domains Hosting Blog, WordPress News

More Control Over the Content You Share

There are currently very few options for individual users to control how their content is used for AI training, and we want to change that. That’s why we’re launching a new tool that lets you opt out of sharing content from your public blogs with third parties, including AI platforms that use such content for training models. 

The reality is that AI companies are acquiring content across the internet for a variety of purposes and in all sorts of ways. We will engage with AI companies that we can have productive relationships with, and are working to give you an easy way to control access to your content.

We’re also getting ahead of proposed regulations around the world. The European Union’s AI Act, for example, would give individuals more control over whether and how their content is utilized by the emerging technology. We support this right regardless of geographic location, so we’re releasing an opt-out toggle and working with partners to ensure you have as much control as possible regarding what content is used. 

Here’s how to opt out of sharing: 

The new toggle can be found in Settings → General → privacy section. Or, you can click here: https://wordpress.com/settings/general.

cleanshot 2024 02 27 at
  • To opt out, visit the privacy settings for each of your sites and toggle on the “Prevent third-party data sharing” option. 
  • Please note: If you’ve already chosen in your settings to discourage search engines from crawling your site, we’ve automatically applied that privacy preference to third-party data sharing.
  • Here’s a Support Center doc with more information.

We already discourage AI crawlers from gathering content from WordPress.com and will continue to do so, save for those with which we partner. We want to represent all of you on WordPress.com and make sure that there are protections in place for how your content is used. As part of that, we have added a setting to opt out of sharing your public site content with third parties. We are committed to making sure our partners respect those decisions.

 

There are currently very few options for individual users to control how their content is used for AI training, and we want to change that. That’s why we’re launching a new tool that lets you opt out of sharing content from your public blogs with third parties, including AI platforms … 

Read More

by: February 2024 – WordPress.com News

More Control Over the Content You Share Read Post »

2025 new years resolutions header 6gNYh5
WordPress News

New Year, New Story: Share Your 2025 Wishes with the World

As the last days of 2024 wind down, we’re inviting WordPress.com bloggers to kick off the new year by doing what we love most: sharing our stories.

Reflecting on the past 12 months and looking forward to the New Year is a natural part of the season, but blogging about those thoughts? That’s a modern twist that turns personal contemplation into community inspiration.

This January, we’re challenging you to write about the turning of the year – from your experiences during 2024, to your hopes, dreams, and goals for 2025, to everything that’s in between. We can’t wait to read what you come up with!

How to participate in the #2025-new-year-challenge

Participating is easy:

  1. Write your post: Craft a heartfelt, honest, or even humorous post about what comes up for you as we enter the new year. Dream big, get specific, or keep it wonderfully vague – it’s your story.
  2. Schedule for January 1st: Use our handy scheduling feature to have your post go live on January 1st, right as the new year begins. Nothing says “fresh start” like a post dropping on day one!
  3. Tag it right: Add the #2025-new-year-challenge tag to your post. This is your ticket to others seeing and interacting with your post.
  4. Get the word out: Blog about the challenge or share this post with others. Let’s get as many stories as we can!

Discover and connect

Want to see what others created? Starting January 1st, visit wordpress.com/tag/2025-new-year-challenge to explore a world of reflections, aspirations, dreams, and more.

You might find a haiku encapsulating the past year, a fitness enthusiast planning their marathon, or someone simply resolving to be kinder to themselves. Every story matters, and every reflection is a step towards a new beginning.

Make it yours with the Personal plan

Ready to make your online presence more personalized? Our Personal plan is the perfect companion for your blogging journey this new year. Get a custom domain (first year included) and transform your blog from a generic URL to your very own corner of the internet.

Imagine telling people, “Check out my resolution progress at [yourname].com” – pretty cool, right?

Let’s make 2025 remarkable

Whether you’re nostalgic for 2024 or excited to learn a language, read more books, or simply smile more this upcoming year – we want to hear about it. Your post might just inspire someone else on their own journey.

So grab your laptop, warm up those typing fingers, and let’s welcome 2025 with stories of growth, hope, and possibility.

Happy writing, and here’s to new beginnings!

 [#item_full_content]

New Year, New Story: Share Your 2025 Wishes with the World Read Post »

power central api wordpress header xxxFxJ
WordPress News

Using WordPress as a Data-Entry Site to Power a Central API

One of the areas where WordPress shines is content management. This is also corroborated by the fact that it is the world’s leading Content Management System, or CMS, by numbers.

The most popular way of displaying the content hosted by WordPress is through a frontend, like through blog posts and pages. That is wonderful for human visitors but there are other ways of consuming that content –– for example, web APIs. 

In this article, we’ll explore how we can leverage WordPress in order to power a central API for projects like phone apps, browser extensions, or the frontends of other WordPress sites!

Following along

All the steps described in this article were made in WordPress Playground. If you want to see the end result and maybe sometimes skip ahead as we go, download this ZIP file, and perform these steps:

What is a web API?

API stands for Application Programming Interface and it’s a way for software applications to communicate with each other in a standardized fashion. A web API is simply one that is accessed through “the internet” –– for example, by entering a certain URL in your web browser.

There are multiple types of web APIs, and one common way to group them is the protocol they use. In this article, we’ll be implementing two APIs, one based on the REST protocol, and another based on the GraphQL protocol. Other protocols you might have heard of include SOAP, RPC, or gRPC. 

WordPress actually includes a built-in REST API which powers the Gutenberg Block Editor. As of October 2024, the popular WPGraphQL plugin has become a canonical plugin paving the road for an official GraphQL API as well.

What data we’ll be modeling

By the end of this article, we’ll have built a WordPress site that allows users to login in order to add/update/delete data entries which will be queryable both via REST routes and a GraphQL endpoint. 

The data entries will collectively represent a company’s organizational chart –– things like employees, teams, and offices. While a little bland, the concepts can be applied to absolutely anything else.

Optional: Trimming down the frontend

While an optional step, it makes a lot of sense to do this if your site won’t be serving any content via pages but exclusively through APIs.

Once you have a hosted WordPress website, you can start by installing a minimalist WordPress theme like Blank Canvas and deleting every single demo post and page on your site. Continue by using the site editor to include information on the homepage for visitors who find it unintentionally. 

For example, add your business’ name and logo, and tell them that they probably landed there in error. You can also include a button linking to the admin area for maintainers of the content. Something along the lines of:

image

One way to prevent your site from being found in search engine results is by checking the Discourage search engines from indexing this site in your site’s settings.

If you would rather fully lock down the frontend and not even have the homepage described above, you can add the following code snippet either to a plugin like Code Snippets or to your child theme’s functions.php file:

/**
 * Disables the frontend for non-logged-in users.
 */
add_action(
	'template_redirect',
	static function (): void {
		$authorization_required_code = WP_Http::UNAUTHORIZED; // 401

		if ( ! is_user_logged_in() ) {
			status_header( $authorization_required_code );
			die( get_status_header_desc( $authorization_required_code ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		}
	}

Custom post types and taxonomies

Now it’s time to focus on the website’s admin area and the data modeling part of this tutorial. The most straightforward way of compartmentalizing your data is by using WordPress’ built-in functionality of custom post types and custom taxonomies.

While there are many ways to do this, for the purposes of this tutorial, we’ll organize our data like this:

  • An employee custom post type
  • A team custom taxonomy
  • An office custom post type

In order to create these custom data types, you can either add custom code to your site, or use a plugin (like in this video). A very popular plugin for creating custom post types and taxonomies using the admin interface is Custom Post Type UI – and that is what we’ll be using in this tutorial.

Here is the JSON configuration for importing the data into your installation:

  • For custom post types 
{"employee":{"name":"employee","label":"Employees","singular_label":"Employee","description":"","public":"false","publicly_queryable":"false","show_ui":"true","show_in_nav_menus":"false","delete_with_user":"false","show_in_rest":"false","rest_base":"","rest_controller_class":"","rest_namespace":"","has_archive":"false","has_archive_string":"","exclude_from_search":"true","capability_type":"post","hierarchical":"false","can_export":"true","rewrite":"false","rewrite_slug":"","rewrite_withfront":"true","query_var":"false","query_var_slug":"","menu_position":"","show_in_menu":"true","show_in_menu_string":"","menu_icon":"dashicons-id","register_meta_box_cb":null,"supports":["title","thumbnail","excerpt","revisions"],"taxonomies":[],"labels":{"menu_name":"Employees","all_items":"All Employees","add_new":"Add new","add_new_item":"Add new Employee","edit_item":"Edit Employee","new_item":"New Employee","view_item":"View Employee","view_items":"View Employees","search_items":"Search Employees","not_found":"No Employees found","not_found_in_trash":"No Employees found in trash","parent":"Parent Employee:","featured_image":"Profile image for this Employee","set_featured_image":"Set profile image for this Employee","remove_featured_image":"Remove profile image for this Employee","use_featured_image":"Use as profile image for this Employee","archives":"Employee archives","insert_into_item":"Insert into Employee","uploaded_to_this_item":"Upload to this Employee","filter_items_list":"Filter Employees list","items_list_navigation":"Employees list navigation","items_list":"Employees list","attributes":"Employees attributes","name_admin_bar":"Employee","item_published":"Employee published","item_published_privately":"Employee published privately.","item_reverted_to_draft":"Employee reverted to draft.","item_trashed":"Employee trashed.","item_scheduled":"Employee scheduled","item_updated":"Employee updated.","parent_item_colon":"Parent Employee:"},"custom_supports":"","enter_title_here":"First and Last Names","show_in_graphql":"1","graphql_single_name":"Employee","graphql_plural_name":"Employees"},"office":{"name":"office","label":"Offices","singular_label":"Office","description":"","public":"false","publicly_queryable":"false","show_ui":"true","show_in_nav_menus":"false","delete_with_user":"false","show_in_rest":"false","rest_base":"","rest_controller_class":"","rest_namespace":"","has_archive":"false","has_archive_string":"","exclude_from_search":"true","capability_type":"post","hierarchical":"false","can_export":"false","rewrite":"false","rewrite_slug":"","rewrite_withfront":"true","query_var":"true","query_var_slug":"","menu_position":"","show_in_menu":"true","show_in_menu_string":"","menu_icon":"dashicons-admin-home","register_meta_box_cb":null,"supports":["title","thumbnail","revisions"],"taxonomies":[],"labels":{"menu_name":"Offices","all_items":"All Offices","add_new":"Add new","add_new_item":"Add new Office","edit_item":"Edit Office","new_item":"New Office","view_item":"View Office","view_items":"View Offices","search_items":"Search Offices","not_found":"No Offices found","not_found_in_trash":"No Offices found in trash","parent":"Parent Office:","featured_image":"Featured image for this Office","set_featured_image":"Set featured image for this Office","remove_featured_image":"Remove featured image for this Office","use_featured_image":"Use as featured image for this Office","archives":"Office archives","insert_into_item":"Insert into Office","uploaded_to_this_item":"Upload to this Office","filter_items_list":"Filter Offices list","items_list_navigation":"Offices list navigation","items_list":"Offices list","attributes":"Offices attributes","name_admin_bar":"Office","item_published":"Office published","item_published_privately":"Office published privately.","item_reverted_to_draft":"Office reverted to draft.","item_trashed":"Office trashed.","item_scheduled":"Office scheduled","item_updated":"Office updated.","parent_item_colon":"Parent Office:"},"custom_supports":"","enter_title_here":"Add Office","show_in_graphql":"1","graphql_single_name":"Office","graphql_plural_name":"Offices"}}
  • For custom taxonomies
{"team":{"name":"team","label":"Teams","singular_label":"Team","description":"","public":"false","publicly_queryable":"false","hierarchical":"false","show_ui":"true","show_in_menu":"true","show_in_nav_menus":"false","query_var":"false","query_var_slug":"","rewrite":"false","rewrite_slug":"","rewrite_withfront":"0","rewrite_hierarchical":"0","show_admin_column":"true","show_in_rest":"false","show_tagcloud":"false","sort":"false","show_in_quick_edit":"","rest_base":"","rest_controller_class":"","rest_namespace":"","labels":{"menu_name":"Teams","all_items":"All Teams","edit_item":"Edit Team","view_item":"View Team","update_item":"Update Team name","add_new_item":"Add new Team","new_item_name":"New Team name","parent_item":"Parent Team","parent_item_colon":"Parent Team:","search_items":"Search Teams","popular_items":"Popular Teams","separate_items_with_commas":"Separate Teams with commas","add_or_remove_items":"Add or remove Teams","choose_from_most_used":"Choose from the most used Teams","not_found":"No Teams found","no_terms":"No Teams","items_list_navigation":"Teams list navigation","items_list":"Teams list","back_to_items":"Back to Teams","name_field_description":"The name is how it appears on your site.","parent_field_description":"Assign a parent term to create a hierarchy. The term Jazz, for example, would be the parent of Bebop and Big Band.","slug_field_description":"The slug is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens.","desc_field_description":"The description is not prominent by default; however, some themes may show it."},"meta_box_cb":"","default_term":"","object_types":["employee"],"show_in_graphql":"1","graphql_single_name":"Team","graphql_plural_name":"Teams"}}

At this point, your WordPress admin interface might look something like this:

image 1

To Gutenberg or not to Gutenberg

The Gutenberg block editor is functional, adaptable, and easy to use, and you should be using it to edit your traditional WordPress posts and pages. However, when it comes to CPTs without a frontend, there might not be any content to warrant the use of a performant editor like Gutenberg.

If you are positive that all of the information you need is not HTML-based, then it might make sense to disable Gutenberg for these CPTs and default back to the classic post editor that was the standard before WordPress 5.0.

The simplest way to disable Gutenberg support for a CPT is to set the show_in_rest argument to false when registering it (as we’ve done above). 

Alternatively, if you want to keep the built-in REST routes that WordPress provides for every CPT, you can add this code to your child theme:

/**
 * Disables the block editor for certain CPTs.
 */
add_filter(
    'use_block_editor_for_post_type',
    static function( bool $use_block_editor, string $post_type ): bool {
	if ( in_array( $post_type, array( 'employee', 'office' ), true ) ) {
		$use_block_editor = false;
       }
  
	return $use_block_editor;
    },
    10,
    2
);

Custom Fields

Now that we have our basic data types in place, we need to start populating them with entries. Before we do that, we need to ensure that we can record all the necessary data on each entry, and for that we will need to build custom fields.

The easiest way to add custom fields to your custom post types is to register them with custom-fields support. When you then edit a post, it will include a metabox like this:

image 2

While this type of “key-value” interface can be enough, you might want to build a more user-friendly interface with fields like checkboxes, dropdowns, media selectors, and so on.

A popular way to add those types of custom fields is the Meta Box plugin, which, as mentioned above, is what we’ll be using in this tutorial. Using their online custom fields generator, we got the PHP code needed to register the fields we wanted and then added them to Code Snippets.

Using a fake data generator, we populated the custom post types with a bit of seed data:

image 3
image 4

Other UI customizations

While we won’t explore any further UI customization options in this tutorial, we wanted to note that it’s possible to use various WordPress filters to tweak things like:

  • The default Add title placeholder on new posts (e.g., to First and Last Names)
  • The columns hidden or visible by default on the CPT list table view
  • Various other labels and messages throughout the admin interface

Access control

Before we start looking into making the data available via API, it’s time to think about who should have access to it. 

The custom post types and taxonomies mentioned above were registered in such a way that any logged-in user with the ability to edit regular WordPress blog posts will also have the ability to edit these. However, it’s possible to make that much more granular.

You can create custom user roles with custom capabilities in order to ensure that the UI is as clean-as-possible in order to promote focused-work for the users doing the data maintenance. This is particularly important if you anticipate a very high number of entries, especially on an ongoing basis. 

While it is possible to control this entirely with custom code, a way to maintain a simpler overview of access management is provided by Access Policies implemented by the Advanced Access Manager plugin

For example, you can create a separate access policy for each CPT you create. Then you may assign the policy either to a role or to individual users in order to maintain full control over who may add new Employee entries or even just edit existing ones. Deleting entries can be a capability reserved only for administrators.

Here is an example of how a policy named Employees CPT – Full Control and assigned only to Administrator users can look like:

{
    "Version": "1.0.0",
    "Dependency": {
        "wordpress": ">=6.6.2",
        "advanced-access-manager": ">=6.9.42"
    },
    "Statement": [
        {
            "Effect": "allow",
            "Resource": [
                "Capability:edit_employees",
                "Capability:edit_others_employees",
                "Capability:edit_private_employees",
                "Capability:edit_published_employees",
                "Capability:read_private_employees",
                "Capability:publish_employees",
                "Capability:delete_employees",
                "Capability:delete_private_employees",
                "Capability:delete_published_employees",
                "Capability:delete_others_employees"
            ]
        }
    ]
}

Here is an example of what the admin interface can look like for a dummy operator user that has the Data Entry Operator user roles (cloned from the Subscriber role) with two AAM Access Policies attached – one for each custom CPT:

image 5

Notice how the lack of most menu items makes it easier to focus solely on the data-entry aspect. The policies can be made more granular, for example, to also restrict who may delete an entry or create new ones.

Custom REST routes

While WordPress will automatically create REST routes for every CPT as long as it is registered with the show_in_rest argument set to true, you can also create your own custom rest routes that are better suited for serving the CPT content in a way that makes more sense to your use-case.

The easiest and most standard way to achieve this is by extending one of the REST API controller classes. For maximum control over the output, you may want to extend the base WP_REST_Controller class itself.

You can choose to have your routes publicly accessible if the permission_callback argument is set to the __return_true function or you can choose to lock down calls using any permission scheme you want. 

The recommended way of locking down access is behind a capability check, i.e. a call to current_user_can. You can use the AAM Access Policies mentioned above to grant or withdraw permission from individual roles or users, and you can use WordPress’ application passwords to authenticate API requests.

Hint: even if you decide that GET (read) requests should/can be publicly available, we still recommend that any POST // PUT // DELETE (create, update, delete) requests always be guarded by a current_user_can check.

Here is a REST controller that we added to Code Snippets in order to be able to list the employees on the site and fetch them by ID:

add_action(
	'rest_api_init',
	function() {
		if ( ! class_exists( 'WP_REST_Controller' ) ) { 
			return;
		}
	
		class Employees_Controller extends WP_REST_Controller {
			protected $namespace = 'custom/v1';
			protected $rest_base = 'employees';

			public function register_routes(): void {
				register_rest_route(
					$this->namespace,
					"/$this->rest_base",
					array(
						array(
							'methods'             => WP_REST_Server::READABLE,
							'permission_callback' => array( $this, 'get_items_permissions_check' ),
							'callback'            => array( $this, 'get_items' ),
							'args'                => $this->get_collection_params(),
						),
						'schema' => array( $this, 'get_public_item_schema' ),
					)
				);
				
				register_rest_route(
					$this->namespace,
					"/$this->rest_base/(?P<employee_id>[d]+)",
					array(
						'args'        => array(
							'employee_id' => array(
								'description' => __( 'Unique identifier for the employee.', 'psapi-features' ),
								'type'        => 'integer',
							),
						),
						array(
							'methods'             => WP_REST_Server::READABLE,
							'permission_callback' => array( $this, 'get_item_permissions_check' ),
							'callback'            => array( $this, 'get_item' ),
						),
						'schema'      => array( $this, 'get_public_item_schema' ),
					)
				);
			}

			public function get_items_permissions_check( $request ): WP_Error|bool {
				return true; // This information is public. You probably want to do a `current_user_can` check.
			}
			
			public function get_item_permissions_check( $request ): WP_Error|bool {
				return $this->get_items_permissions_check( $request ); // Same as for listing all. Can be different.
			}

			public function get_items( $request ): WP_Error|WP_REST_Response {
				$response = array();

				$employees = new WP_Query( $this->prepare_posts_query_args( $request ) );
				foreach ( $employees->posts as $employee ) {
					$data       = $this->prepare_item_for_response( $employee, $request );
					$response[] = $this->prepare_response_for_collection( $data );
				}

				$response = rest_ensure_response( $response );

				$response->header( 'X-WP-Total', $employees->found_posts );
				$response->header( 'X-WP-TotalPages', $employees->max_num_pages );
				foreach ( $this->prepare_link_headers( $request, $employees->max_num_pages ) as $key => $value ) {
					$response->link_header( $key, $value );
				}

				return $response;
			}
			
			public function get_item( $request ): WP_Error|WP_REST_Response {
				$employee = get_post( $request['employee_id'] );
				if ( ! $employee ) {
					return new WP_Error( 'rest_not_found', __( 'No employee found for the given identifier.', 'wpcom-demo' ), array( 'status' => 404 ) );
				}
				
				$response = $this->prepare_item_for_response( $employee, $request );
				return rest_ensure_response( $response );
			}

			public function prepare_item_for_response( $item, $request ): WP_Error|WP_REST_Response {
				$fields = $this->get_fields_for_response( $request );
				$data   = array();

				if ( rest_is_field_included( 'id', $fields ) ) {
					$data['id'] = $item->ID;
				}
				if ( rest_is_field_included( 'name', $fields ) ) {
					$data['name'] = $item->post_title;
				}
				if ( rest_is_field_included( 'picture', $fields ) ) {
					$picture = get_the_post_thumbnail_url( $item, 'full' );
					$data['picture'] = empty( $picture ) ? null : $picture;
				}

				$data     = rest_sanitize_value_from_schema( $data, $this->get_item_schema() );
				$response = rest_ensure_response( $data );
				if ( rest_is_field_included( '_links', $fields ) ) {
					$response->add_links( $this->prepare_links( $item, $request ) );
				}

				return $response;
			}

			public function get_item_schema(): array {
				if ( $this->schema ) {
					return $this->add_additional_fields_schema( $this->schema );
				}

				$this->schema = array(
					'$schema'    => 'http://json-schema.org/draft-04/schema#',
					'title'      => 'employee',
					'type'       => 'object',
					'properties' => array(
						'id'           => array(
							'description' => __( 'Unique identifier for the employee.', 'wpcom-demo' ),
							'type'        => 'integer',
							'readonly'    => true,
						),
						'name'         => array(
							'description' => __( 'The name of the employee.', 'wpcom-demo' ),
							'type'        => 'string',
							'required'    => true,
						),
						'picture'      => array(
							'description' => __( 'URL to the employee profile picture.', 'wpcom-demo' ),
							'type'        => array( 'string', 'null' ),
							'format'      => 'uri',
							'required'    => true,
						),
					)
				);

				return $this->add_additional_fields_schema( $this->schema );
			}
			
			protected function prepare_posts_query_args( WP_REST_Request $request ): array {
				return array(
					'post_type'      => 'employee',
					'post_status'    => 'publish',
					'order'          => $request['order'],
					'orderby'        => $request['orderby'],
					'posts_per_page' => $request['per_page'],
					'paged'          => $request['page'],
					's'              => $request['search'] ?? '',
					'tax_query'      => $this->prepare_posts_taxonomy_query_args( $request ), // phpcs:ignore WordPress.DB.SlowDBQuery
				);
			}
			protected function prepare_posts_taxonomy_query_args( WP_REST_Request $request ): array {
				$tax_query = array();

				if ( $request['team'] ?? false ) {
					$tax_query[] = array(
						'taxonomy' => 'team',
						'field'    => 'slug',
						'terms'    => array( $request['team'] ),
					);
				}

				return $tax_query;
			}
			
			protected function prepare_link_headers( WP_REST_Request $request, int $max_pages ): array {
				$link_headers = array();

				$base = add_query_arg(
					urlencode_deep( $request->get_query_params() ),
					rest_url( $request->get_route() )
				);

				$next_page = $request['page'] < $max_pages ? ( $request['page'] + 1 ) : null;
				if ( $next_page ) {
					$link_headers['next'] = add_query_arg( 'page', $next_page, $base );
				}

				$prev_page = $request['page'] > 1 ? ( $request['page'] - 1 ) : null;
				if ( $prev_page ) {
					$link_headers['prev'] = add_query_arg( 'page', $prev_page, $base );
				}

				return $link_headers;
			}
			
			protected function prepare_links( WP_Post $employee, WP_REST_Request $request ): array {
				$links = array();
				
				if ( ! isset( $request['employee_id'] ) ) {
					$links['self'] = array(
						array(
							'href' => rest_url( "$this->namespace/$this->rest_base/{$employee->ID}" ),
						),
					);
				} else {
					$links['collection'] = array(
						array(
							'href' => rest_url( "$this->namespace/$this->rest_base" ),
						),
					);
				}
				
				return $links;
			}
		}
		
		( new Employees_Controller() )->register_routes();
	}
);

Testing your REST routes

Your custom REST routes will be available under <your-domain>/wp-json/<route_namespace>/<route>. For example, the path for retrieving the list of employees could look like this:

<your-domain>/wp-json/custom/v1/employees?team=marketing

Hint: the team query added there will be parsed by WordPress and made available in the controller; you can then choose to either ignore it or filter the results by it – anything you want!

The easiest way to test your endpoints, especially if they will require an application password to access, is to use a tool like Postman which lets you test APIs in a very user-friendly manner. Publicly available GET requests can also be tested by simply visiting the URL endpoint in your browser!

Querying via GraphQL

Now that we are able to fetch the data via REST routes, let’s explore how we might be able to fetch it using GraphQL as well.

If you’re unfamiliar with GraphQL, what you need to know is that it’s actually a querying language just like SQL but for APIs. You can read more about it on the official website over at https://graphql.org/

The simplest way to add GraphQL support to our site is by installing the newly-canonical plugin WPGraphQL. It also has a documentation page where you can learn more about what it provides out-of-the-box, and also examples of how to handle much more complex scenarios.  

If you’ve been paying attention to the JSON configuration of the custom post types shared above, you might’ve already noticed a key named show_in_graphql set to 1 (true/active). That is all we need in order to allow the custom post types we added to be queries using GraphQL.

Here is an example of a GraphQL query that can be used to list Employees which you can test in the built-in GraphQL IDE bundled with the plugin:

query GetEmployeesEdges {
  employees {
    edges {
      node {
        id
        name: title
        image: featuredImage {
          node {
            sourceUrl
          }
        }
      }
    }
  }
}

Building your own

If this sounds like something you want to build for your own business, you can work on it on your own computer using Studio by WordPress.com. You can even share your work with colleagues (for free!) using a demo site, and when you’re ready, any WordPress.com Business plan or higher will be able to host and manage your site.

 [#item_full_content]

Using WordPress as a Data-Entry Site to Power a Central API Read Post »

state of the word preview header i7UWsX
WordPress News

State of the Word 2024: Watch Live on December 16

State of the Word 2024 is just around the corner! Join us for this live stream event on Monday, Dec. 16th at 18:00 JST / 09:00 UTC. 

State of the Word is the annual keynote address delivered by the WordPress project’s co-founder and Automattic CEO, Matt Mullenweg. Every year, the event celebrates the open source project’s progress and offers a glimpse into its future. 

State of the Word 2024 will be held in Tokyo, Japan, at Tokyo Node Hall. This will mark the first year the event has ever been held in Japan, where WordPress powers 58.5% of all websites. This year’s edition promises to deliver insight from Matt, Lead Architect Matías Ventura, and General Manager Mary Hubbard, as well as a lineup of guest panelists, from acclaimed authors to leaders in the Japanese WordPress community. 

It will be live-streamed worldwide via the WordPress YouTube channel.

Watch State of the Word 2024 live!

What: State of the Word 2024

When: Monday, Dec. 16th at 18:00 JST / 09:00 UTC / 04:00am EST

How: The live stream is embedded above in this post and will start at the time of the event. It will also be available through the WordPress YouTube channel. Prefer to watch with other WordPressers? There will also be locally-organized watch parties happening around the world. Search to find one near you or learn how to host your own watch party.

 [#item_full_content]

State of the Word 2024: Watch Live on December 16 Read Post »

end of the year sale veN8hD
WordPress News

Dream It. Build It. Here’s 25% Off to Make it Happen.

Every great journey starts with a single step—and yours starts today.

You’ve had the idea. You’ve imagined the possibilities. Whether it’s a blog, a business, or a creative project, the dream has always been there, waiting. But here’s the truth: dreams can’t grow until you take action. And right now is the perfect time to start.

At WordPress.com, we’re here to help you bring your vision to life. With our year-end promotion, you’ll get 25% off any new annual plan—plus a free domain for your first year—to make starting even easier.

Use coupon code DREAM25 at checkout and start building today.

Why wait when everything you need is right here?

  • Design your dream. Choose from stunning, customizable themes that make your site uniquely yours.
  • Be seen effortlessly. Built-in SEO tools help grow your audience and expand your reach.
  • Turn passion into profit. Accept payments, offer subscriptions, and much more.
  • Get expert help, 24/7. Our team is always available to support your success.

And that’s just the beginning. From intuitive tools to seamless performance, we’ve built the platform to help you succeed—whether you’re starting your first blog, scaling your business, or taking your passion to the next level.

But here’s the thing: your dream won’t wait forever, and neither will this offer. This exclusive 25% discount ends on December 31st, 2024. Use coupon code DREAM25 at checkout and start building today.

The future you’ve been imagining? It’s closer than you think. Dream it. Build it. Grow it—with WordPress.com.

 [#item_full_content]

Dream It. Build It. Here’s 25% Off to Make it Happen. Read Post »

let it snow blog header adNbss
WordPress News

Snow Time Like the Present for WordPress.com

Bringing back a frosty feature (plus more improvements for WordPress.com users)

About 17 years ago we added an option called “Show falling snow on my blog” to WordPress.com. The name said it all: it added falling snow to your blog. Then, one day, it disappeared. It wasn’t because spring came and melted the snow away. We were cleaning up code, juggling lots of different priorities, and the snow was shoveled away.  

When we first announced this bit of fun in 2007, we were inspired because WordPress co-founder and our CEO Matt Mullenweg was missing out on a White Christmas in his hometown of Houston. Ever since it went away, some of you have let us know you’ve also been missing out on snow — on WordPress.com. Thanks to everyone who reminded us, we’re bringing back this frosty feature today, available now for every WordPress.com user.

Want to join the fun? Log into your WordPress.com account and visit Settings in the left-hand sidebar. There, you’ll find an option to add some fresh powder to your site:

image 6
Your personal snow machine, free for all WordPress.com users.

Voilà! With one click, your visitors can enjoy a wintry surprise, no matter where they are in the world: 

We like to think of it as a fun gift for a time of year when so many people around the world will be sharing gifts — whether or not it’s snowing where you’re writing on your blog.

Now, we know not everyone appreciates snow as much as we do. So, we’ve been working hard on a flurry of other gifts over the past few months too, adding tons of improvements to WordPress.com. Until now, we just haven’t told you about them on our blog! This seems like a great time to recognize all those other small features, improvements, and wishlist items that make the WordPress.com world just a little bit nicer:

  • We added over 65 themes to our Free, Personal, and Premium plans in the last half of the year. If you haven’t taken a look at our new themes lately, take a moment and browse around now. If you’re on the Business plan and above, you can use any theme — even custom ones — but we’re always trying to make sure you have a great, curated list of high-quality options on our less expensive plans too.
  • We also brought back Bulk Plugin Management, so Business and Commerce plan users can efficiently manage and update plugins across all your WordPress.com sites. If you’re managing multiple sites, this will save you a lot of time, so you can spend more time doing what you love.
  • The WordPress core development team created a new component for managing data called Data Views. We’re using this functionality in our Hosting Dashboard, improving the experience of managing your sites and domains.
  • Developers know that PHP — a programming language that’s near and dear to our hearts — is the backbone of the web (and WordPress itself). Never heard of it? Not to worry. Just think of PHP as the magic that makes your WordPress website possible. WordPress.com upgraded to PHP 8.1 this year, ensuring your sites maintain top-tier performance and compatibility with your favorite themes and plugins.

With all these new features and improvements, there’s snow time like the present to build your websites with WordPress.com. Feeling the giving spirit too? It’s easy to share WordPress.com with a gift subscription. No pressure, of course. Enjoy the snow, and look for even more enhancements and features to come in 2025!

 [#item_full_content]

Snow Time Like the Present for WordPress.com Read Post »

WordPress News

Snow Time Like the Present for WordPress.com

Bringing back a frosty feature (plus more improvements for WordPress.com users)

About 17 years ago we added an option called “Show falling snow on my blog” to WordPress.com. The name said it all: it added falling snow to your blog. Then, one day, it disappeared. It wasn’t because spring came and melted the snow away. We were cleaning up code, juggling lots of different priorities, and the snow was shoveled away.  

When we first announced this bit of fun in 2007, we were inspired because WordPress co-founder and our CEO Matt Mullenweg was missing out on a White Christmas in his hometown of Houston. Ever since it went away, some of you have let us know you’ve also been missing out on snow — on WordPress.com. Thanks to everyone who reminded us, we’re bringing back this frosty feature today, available now for every WordPress.com user.

Want to join the fun? Log into your WordPress.com account and visit Settings in the left-hand sidebar. There, you’ll find an option to add some fresh powder to your site:

image 6
Your personal snow machine, free for all WordPress.com users.

Voilà! With one click, your visitors can enjoy a wintry surprise, no matter where they are in the world: 

We like to think of it as a fun gift for a time of year when so many people around the world will be sharing gifts — whether or not it’s snowing where you’re writing on your blog.

Now, we know not everyone appreciates snow as much as we do. So, we’ve been working hard on a flurry of other gifts over the past few months too, adding tons of improvements to WordPress.com. Until now, we just haven’t told you about them on our blog! This seems like a great time to recognize all those other small features, improvements, and wishlist items that make the WordPress.com world just a little bit nicer:

  • We added over 65 themes to our Free, Personal, and Premium plans in the last half of the year. If you haven’t taken a look at our new themes lately, take a moment and browse around now. If you’re on the Business plan and above, you can use any theme — even custom ones — but we’re always trying to make sure you have a great, curated list of high-quality options on our less expensive plans too.
  • We also brought back Bulk Plugin Management, so Business and Commerce plan users can efficiently manage and update plugins across all your WordPress.com sites. If you’re managing multiple sites, this will save you a lot of time, so you can spend more time doing what you love.
  • The WordPress core development team created a new component for managing data called Data Views. We’re using this functionality in our Hosting Dashboard, improving the experience of managing your sites and domains.
  • Developers know that PHP — a programming language that’s near and dear to our hearts — is the backbone of the web (and WordPress itself). Never heard of it? Not to worry. Just think of PHP as the magic that makes your WordPress website possible. WordPress.com upgraded to PHP 8.1 this year, ensuring your sites maintain top-tier performance and compatibility with your favorite themes and plugins.

With all these new features and improvements, there’s snow time like the present to build your websites with WordPress.com. Feeling the giving spirit too? It’s easy to share WordPress.com with a gift subscription. No pressure, of course. Enjoy the snow, and look for even more enhancements and features to come in 2025!

 [#item_full_content]

Snow Time Like the Present for WordPress.com Read Post »

december 2024 themes header dJzSpq
WordPress News

Hot Off the Press: New WordPress.com Themes for December 2024

Another month means another fresh batch of excellent themes for WordPress.com. Let’s look at some of the latest additions to the WordPress.com themes gallery, with great options for content creators, small businesses, event organizers, and personal sites. Preview each one below (and maybe try taking one for a spin).

CoachAva

coach ava screenshot
  • Designed for: Professional coaches
  • Also great for: Consultants, thought leaders, speakers, and content creators with paid course offerings

With a clean, single-hued design, minimal photography, and approachable fonts, CoachAva is built for professional coaches looking to highlight their core offerings and showcase their expertise. 

Whether you’re a seasoned executive coach, a life coach, or a subject matter expert looking to sell digital or in-person services, CoachAva can help you establish trust with potential clients by putting your thought leadership front and center. Blocks make it easy to share blog posts, podcasts, and/or customer testimonials on your homepage. The flexible design makes it easy to define, package, and showcase your different offerings, connecting clients to the perfect programs.

Explore CoachAva

CastCore

castcore screenshot
  • Best for: Podcasters
  • Also great for: Bloggers, serial content creators, news sites with limited photography

Ideal for podcasters building their first site, Castcore features bold, attention-grabbing titles and a minimalist aesthetic that keeps your listeners focused on what matters most – your content. 

With a simple homepage design, this template makes it easy for listeners to scroll through your recent content to find the right episode. Castcore is a great option for podcasters who want to build their subscriber base. The Podcast Player block makes it super easy to create an embedded mini-player for your episodes: simply copy your podcast’s RSS URL to engage listeners right on your page. Choose a grey and black color combo for a classic design or go young and bold with bright yellow.

Explore CastCore

CoachBen

coachben screenshot
  • Designed for: Professional coaches
  • Also great for: Thought leaders, speakers, and content creators with paid course offerings

CoachBen’s dark theme with bright accents offers a bold and professional design that perfectly reflects a coach at the top of their game. Striking and to the point, this theme allows professional coaches to quickly articulate their value proposition and define their services. 

With pre-designed blocks for displaying company logos of past clients, a calendar of speaking events, and a blog subscription, there are plenty of ways to show potential clients your expertise and experience. When they’re ready to dig in, they can learn more about specific offerings on your courses page or reach out to schedule a call.

Explore CoachBen

GreenSeed

greenseed screenshot 1
  • Designed for: Flexible visual sites
  • Also Great for: Brick and mortars, Restaurants, Personal care providers, Digital portfolios, visual artists, photographers

Greenseed is a beautifully simple, highly adaptable theme that makes it easy for businesses to take their brick-and-mortar brands online. Designed with full-site editing in mind, Greenseed can be customized to match any brand style, but its open spaces and bold visuals make it a particularly great choice for businesses looking to establish a streamlined online presence that embraces custom photography. 

This minimal, approachable layout gives your photos space to breathe while providing key business information like address, phone number, and store hours. Link to your reservations page or provide visitors with a contact form to make it easy for potential customers to make an appointment or plan a visit.

Explore Greenseed

Aether

aether screenshot
  • Designed for: Small jewelry or accessory brands
  • Also great for: Eco-conscious consumer brands, wedding suppliers 

Like the jewelry and accessory brands it was built for, Aether embodies modern elegance. With delicate fonts and natural-toned color palettes, this product-focused template offers a tasteful design that allows artisan accessories and jewelry to truly sparkle. 

With social media integrations and the ability to highlight products on your homepage, Aether creates a flexible hub for your digital brand. You can allow your customers to purchase products directly through WordPress’s e-commerce plugins or you can link your website to an existing storefront. With Aether, you can be sure your customers will understand your brand’s commitment to quality and design.

Explore Aether

Miko

miko screenshot
  • Designed for: Personal professional website
  • Also great for: Writer portfolios, speakers, brand consultants

With a bold split-page design and minimalist elements, Miko keeps your brand center stage. Best for individuals, creators, or service providers who want to make a lasting visual impact, this template allows visitors to navigate through all of the pages of your site on the left side without ever navigating away from the image and title anchored on the right. 

Featuring a variety of hyper-modern font options and cool color combos, Miko can lean sweet and delicate or bold and artistic, effortlessly complimenting a huge range of personal and professional website identities. Regardless of the style you choose, Miko is the perfect theme for anyone who wants to present themselves as a modern, polished professional with an eye for design.

Explore Miko

Conference

conference screenshot

The best way to market your upcoming conference is with a sleek custom website. Conference is a flexible template that helps conference planners create a credible online presence. 

The Conference template can support both marketing and event logistics: You can highlight your speakers, sponsors, and conference news to draw in new attendees via the signup form. Once attendees register, the site acts as a home base for key information, providing pages for the conference location, daily schedules, and lists of attendees to help your participants connect in advance. Whether you are hosting a multi-day affair or an intimate workshop, Conference can scale to meet the needs of your event.

Explore Conference


Ready to give your site a makeover? You can explore these themes by clicking the “Demo” button on each theme page. Whether you’re starting a coaching business or looking to improve your professional online presence, you might just find the perfect jumping-off point for your future website.

Most premium themes are available to use at no extra charge for customers on the Personal plan or above. You can explore all of our premium themes by navigating to the “Themes” page, which is under “Appearance” in the left-side menu of your WordPress.com dashboard, or by clicking the button below:

Partner themes are third-party products that can be purchased for $99/year each on the Business or Commerce plans, so if you haven’t found what you’re looking for today, there are plenty of alternatives available.

 [#item_full_content]

Hot Off the Press: New WordPress.com Themes for December 2024 Read Post »

defensive mode wordpress com aufJCT
WordPress News

Introducing WordPress.com’s New Hardened DDoS Protection Setting

Spam bots and denial-of-service attacks are a reality for many website owners. Depending on timing and scale, they can be an annoyance or a detriment to your business’s bottom line. Services like Cloudflare, Fastly, and Vercel are popular choices for mitigating these attacks with sophisticated techniques beyond the firewall rules many hosts (WordPress.com included) employ to examine and potentially block incoming traffic.

WordPress.com’s defensive mode introduces similar, sophisticated DDoS protection that further enhances your site’s security. It works by issuing proof-of-work challenges to browsers visiting the site. Legitimate users will briefly see a challenge page while their browser completes the work before accessing the site. The feature is powered by our global edge network, but it can still be enabled independently of our global edge cache feature.

What is defensive mode?

If you notice an inordinate amount of traffic to your website that is slowing it down, this setting filters spam traffic by requesting that they complete a proof-of-work challenge. When visitors come to your website for the first time, they will see the following screen:

the message 'Checking your browser' on a white background

This proof-of-work challenge page has a unique random puzzle embedded in it, along with JavaScript that can solve the puzzle. The puzzles are designed to take a typical CPU a few seconds to solve, and they deter botnets, which are not able to run the scripts to solve the puzzles.

How to enable it

This system protects all sites hosted on WordPress.com. Sites on Free, Personal, and Premium hosting plans are managed for you. For sites on Business or Commerce hosting plans, this setting can also be managed manually from your site’s Hosting Dashboard.

Here’s how to enable it:

  1. Visit your Sites page by clicking on the WordPress logo in the upper left corner of your dashboard.
  2. Click on your site title.
  3. Click on the “Server Settings” tab on the site overview page.
  4. Scroll down to the Defensive mode section.
  5. Select a duration and click the “Enable defensive mode” button

Note that WordPress.com staff may proactively enable defensive mode on your behalf, regardless of what hosting plan you have, if your site is attacked.

Get it all on WordPress.com

Many hosts charge extra for capabilities like this, or they require integration with a third-party provider. On WordPress.com, defensive mode is included on every plan and can be managed manually on Business and Commerce plans.

This is just one more reason why WordPress.com stands out as the premier managed host for WordPress sites. With staging sites, SSH and WP-CLI access, or GitHub deployments, we’re always working on new tools to make WordPress.com an essential component of your development workflow. 

What other features would you like to see on WordPress.com? How can we make WordPress.com an even more powerful place to build a website? Let us know in the comments below.

 [#item_full_content]

Introducing WordPress.com’s New Hardened DDoS Protection Setting Read Post »

black friday 2024 blog post header ZNGDDN
WordPress News

Build Your Website with WordPress.com and Save on Black Friday

Having a well-designed, functional website helps you reach a broader audience, build credibility, and connect meaningfully with customers or followers. In today’s digital-first world, your website is often the first impression you make, and right now is the time to make it count.

Why now? Black Friday savings, of course!

Until December 2nd, save 25% on the first year of any new annual hosting plan from WordPress.com.

Why having a reliable website matters 

There are many reasons a website is important. Let’s take a look at three that impact the relationship you can build with your audience:

Trust and credibility 

We live in an “informed consumer” society and having a website allows you to share important details about your business or products. Your customers look for a website to help them form opinions, understand your offerings, and ultimately make a purchase decision. If you don’t have one, it can raise questions of legitimacy and cause your customers to look elsewhere for the products or services they require. 

User experience 

Your WordPress.com website gives you full control over how people experience your brand. A well-organized site not only sets the right tone but also makes it easy for visitors to find what they need, continuing to build trust and showing your commitment to a positive experience.

Accessibility and convenience

The internet never closes or sleeps. With a website, your audience has 24/7 access to everything you offer—any time, from anywhere. 

Putting your audience first is essential to your success. 

This is why our Black Friday sale is about so much more than the 25% savings you’ll receive on the first year of any new, annual hosting plan. 

Why WordPress.com?

Choosing WordPress.com as your website host means choosing a team committed to your success. Our self-help resources, AI Assistant, and Happiness Engineers are all focused on helping you be successful with your website. 

Our managed WordPress hosting also offers unmetered visitors, unmatched speed, and unstoppable security for one low price. With WordPress.com, you always have what you need to get online (and stay online) so you can grow your audience.

And if you take advantage of our Black Friday sale before December 2nd, you get even more with your purchase:

  • 25% off any new, annual hosting plan
  • A free custom domain for one year
  • Expert support from our Happiness Engineers

What’s possible on WordPress.com

WordPress is a powerful and flexible website building platform, and WordPress.com gives you that functionality alongside powerful, secure, and scalable managed hosting. Whether you want a simple blog, a complex eCommerce store, or anything in-between, WordPress.com is the right hosting platform for you. 

Check out what’s possible on WordPress.com in our demo site showcase:

How to unlock powerful WordPress hosting

Ready to get started with WordPress.com? We thought you might be.

Click the button below to learn more about each of our plans, choose the right plan for you, and purchase your discounted hosting plan. Your 25% off discount will apply automatically at checkout.

Frequently asked questions

What if I change my mind, can I get a refund?

Absolutely. We offer a risk-free, 14-day money back guarantee on annual plans

Can I use a domain I already own?

For sure. You can transfer or connect your domain and we can guide you on the steps as needed. 

Can I migrate an existing site?

Absolutely. Whether your existing site is built with WordPress or another platform, we have guides available to walk you through the process. We also offer free migrations of WordPress sites. And yes, our Black Friday offer applies to site migrations too.

Is this offer available on renewals or upgrades?

No, this discount only applies to new annual plans. Current users can, however, use this offer if they’re adding a new plan or site.

How do renewals work?

Our Black Friday offer gives you a 25% discount off the first year of your hosting plan. Our annual plans automatically renew 30-days prior to your expiry date at the regular full price. 

Sign up today to take advantage of powerful managed WordPress hosting from WordPress.com and save 25% on the annual plan of your choice.

This offer expires on December 2nd, 2024.

 [#item_full_content]

Build Your Website with WordPress.com and Save on Black Friday Read Post »

Scroll to Top