<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Christina Garofalo</title>
    <description>The latest articles on DEV Community by Christina Garofalo (@cgarofalo).</description>
    <link>https://dev.to/cgarofalo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1051817%2Fe1a68734-0896-4523-a2da-85b2e07dc0f6.png</url>
      <title>DEV Community: Christina Garofalo</title>
      <link>https://dev.to/cgarofalo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cgarofalo"/>
    <language>en</language>
    <item>
      <title>My Favourite Websites as a WordPress Developer</title>
      <dc:creator>Christina Garofalo</dc:creator>
      <pubDate>Mon, 07 Aug 2023 14:14:01 +0000</pubDate>
      <link>https://dev.to/plank/my-favourite-websites-as-a-wordpress-developer-kg9</link>
      <guid>https://dev.to/plank/my-favourite-websites-as-a-wordpress-developer-kg9</guid>
      <description>&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@tobben63?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Torbjørn Helgesen&lt;/a&gt; on &lt;a href="https://unsplash.com/photos/SKlrApjIBrw?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;There are loads of useful websites out there to help you with your development, this is just a list of the ones that I use on an almost daily basis. As a fan of open-source and free tools, every one of these websites is free to use. Take a gander at this unordered, non-exhaustive list of handy websites.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://playground.wordpress.net"&gt;playground.wordpress.net&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Run WordPress in your browser. Try plugins and test things out, without the risk of messing up your environment. You can easily swap WordPress and PHP versions without the hassle of setting up a site locally. This is a brand new project, so if you do WordPress development, it’s pretty exciting. The documentation can be found &lt;a href="https://developer.wordpress.org/playground/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://notpurple.com"&gt;notpurple.com&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This hardly constitutes a website, but when you just need a dummy URL that’s live, I use notpurple.com. All this website does is randomly change the background colour to something other than purple on reload. That’s it.&lt;/p&gt;

&lt;p&gt;This site’s predecessor was shown to me by an IT technician when I was having issues with my home internet connection, and kept asking me to ping it, instead of Google. This website has a funny history, it used to be purple.com before it was sold not that long ago to a mattress company of the same name. All that site did was the same as notpurple.com, except that it only showed random shades of purple. It’s so bizarre that there’s a &lt;a href="https://en.wikipedia.org/wiki/Purple.com"&gt;Wiki article about it&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://placehold.co"&gt;placehold.co&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Every web developer just needs some good old-fashioned placeholder images, without needing to host them somewhere. There are numerous placeholder websites out there (including &lt;a href="https://placekitten.com"&gt;placekitten.com&lt;/a&gt; and &lt;a href="https://placebear.com"&gt;placebear.com&lt;/a&gt;), but I like placehold.co for its simplicity and versatility. You can define size, colour, text and format in one image URL. I will often use these as fallback images when coding. When all else fails - grab an image from placehold.co.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://ui-avatars.com"&gt;ui-avatars.com&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This service is similar to placehold.co, except that it serves up avatars that use initials and a random colour. You can define the name, the colour, the size and the shape of the avatar (square or round) if you need something specific for your project.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://unsplash.com"&gt;unsplash.com&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Actually free, royalty-free images. This site was recently acquired by Getty Images, and now offers a paid tier (unsplash+), but there’s still plenty of free goodness to go around. You can also have access to these free images directly in the WordPress Media Library via the &lt;a href="https://wordpress.org/plugins/instant-images/"&gt;Instant Images&lt;/a&gt; plugin. It’s nice just having a source for high-quality images where you don’t need to worry about copyright concerns. While you don’t need to credit the photographers, personally I like to give credit where credit is due, I encourage you to do the same.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://jsoneditoronline.org"&gt;jsoneditoronline.org&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;This one is self-explanatory, it allows you to edit JSON in your browser. I mostly use this to sanity-check large blocks of JSON when working on custom importers and general data manipulation, as it points out syntax errors and differences. Useful for when you don’t want to fire up your IDE.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://onlinephp.io"&gt;onlinephp.io&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;I like to experiment with PHP, but I don’t always want to create a whole local dev site just to do it. This site lets you code directly in the browser and choose from the 400+ versions of PHP at your fingertips. Being able to effortlessly switch PHP versions is a handy way to refactor old code snippets and bring them up to date for PHP 8+, right in your browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://dnschecker.org"&gt;dnschecker.org&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Eventually, you are going to need to put your site live, so you buy a domain and host it somewhere. This means you’ll have to point your DNS records at a server. This website lets you check to see if your domain has propagated worldwide, allowing you to debug DNS issues faster. DNS propagation is known to take up to 48 hours, however, I find that most things get propagated in a few hours at most and at times as soon as 5 mins. This tool lets you see the results in almost real-time. (There is a checkbox that lets you auto-refresh to see changes every 20 seconds if you feel the need to watch it like a hawk.)&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://who.is"&gt;who.is&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;When I need to know where a domain is registered, I run it through Who.is. I mostly use this to help clients track down who is holding their domain “hostage”. A lot of the time, they don’t know, either because their predecessor didn’t inform them or some kind of bad breakup with a former developer or agency. This site helps shed light on the situation and could help you or your clients get in touch with the person or organization. (Or maybe you’re just nosey). &lt;/p&gt;

&lt;p&gt;These are just a handful of useful sites I’ve “collected” over the years that I keep going back to, and that generally hang out in my bookmark bar for quick access. What are the go-to websites that help you in your everyday development? I’m always on the hunt for useful tools, comment with your faves below!&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>development</category>
      <category>tooling</category>
    </item>
    <item>
      <title>My Favourite WordPress Plugins as a Developer</title>
      <dc:creator>Christina Garofalo</dc:creator>
      <pubDate>Mon, 31 Jul 2023 13:54:54 +0000</pubDate>
      <link>https://dev.to/plank/my-favourite-wordpress-plugins-as-a-developer-14dc</link>
      <guid>https://dev.to/plank/my-favourite-wordpress-plugins-as-a-developer-14dc</guid>
      <description>&lt;p&gt;There are 59,592 plugins listed on &lt;a href="https://wordptress.org/plugins" rel="noopener noreferrer"&gt;WordPress.org&lt;/a&gt; at the moment of writing this blog post. That is a lot to sift through! This is the unordered, non-exhaustive list of my favourite plugins that I use as a developer just about every day, and maybe you’ll find them useful too — at the very least this will save you some time searching through a lot of defunct, irrelevant and poorly maintained plugins. I’m a huge fan of open-source software, so all plugins on this list are free to use or have a free version.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;a href="https://wordpress.org/plugins/fakerpress/" rel="noopener noreferrer"&gt;FakerPress&lt;/a&gt; by Gustavo Bordoni
&lt;/h3&gt;

&lt;p&gt;FakerPress is great for when you just need to populate a staging or local environment with fake posts and content for testing purposes. You can even fake users (which can be used with the User Switching plugin). It will also download and set featured images for you. The best part is when you are all done or need to reset the data, you can bulk delete anything that was generated by FakerPress.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. &lt;a href="https://wordpress.org/plugins/instant-images/" rel="noopener noreferrer"&gt;Instant Images&lt;/a&gt; by Darren Cooney
&lt;/h3&gt;

&lt;p&gt;Instead of using the same boring placeholder images over and over again during development, give Instant Images a go. You can import free &amp;amp; royalty-free images directly from Unsplash into the media library. It even fills out the title, caption and alt text for you (English only). I use this primarily for development, but there's no reason why it couldn't be used in production either. Having relevant images at your fingertips helps the client (and yourself) visualize what the site could look like on a staging site or save you the hassle of having to search for relevant images in another tab in your browser.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. &lt;a href="https://wordpress.org/plugins/wp-mail-smtp/" rel="noopener noreferrer"&gt;WP Mail SMTP&lt;/a&gt; by WP Mail SMTP
&lt;/h3&gt;

&lt;p&gt;Sometimes you need to get email working in your dev environments without the headache of setting up PHP’s mailer. WP Mail makes setting up email a straightforward process with its wizard. I like to use &lt;a href="https://mailtrap.io" rel="noopener noreferrer"&gt;Mailtrap.io&lt;/a&gt; for email testing. A single testing inbox is free and works with WP Mail with the SMTP settings. Using this plugin will ensure that emails sent from your site, such as password resets, will be delivered.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. &lt;a href="https://wordpress.org/plugins/filebird/" rel="noopener noreferrer"&gt;FileBird&lt;/a&gt; by Ninja Team
&lt;/h3&gt;

&lt;p&gt;This plugin creates folders/tags within the native media library. It has a beautiful UI and is extremely useful for keeping your media library organized, especially when you have a lot of files. It doesn’t alter the uploads directory either, so if you do decide to remove it, it won’t leave a mess. While this is handy during testing, it's also nice to have in production as well.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. &lt;a href="https://wordpress.org/plugins/user-switching/" rel="noopener noreferrer"&gt;User Switching&lt;/a&gt; by John Blackbourn &amp;amp; contributors
&lt;/h3&gt;

&lt;p&gt;If you are working on any kind of membership site or a site that has multiple users and roles, I strongly suggest using this plugin to test what the various users on your site can access and see. You can easily "switch" to appear logged in as different users on your site. I would not recommend this plugin be installed in a production environment, but it's certainly handy during testing.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. &lt;a href="https://wordpress.org/plugins/wp-help/" rel="noopener noreferrer"&gt;WP Help&lt;/a&gt; by Mark Jaquith
&lt;/h3&gt;

&lt;p&gt;Add some documentation right into the admin dashboard. Useful for keeping documentation for yourself, or helpful notes for the admins of the site. The only downside is that the documentation is stored in the database, making it difficult to migrate the documentation only from one site to another or commit it to a repository. (This is a bit of annoyance for me as I tend to use the same documentation over and over again with slight tweaks.) There is a feature to link documentation, and all changes made from the source will be mirrored on any linked sites which is handy for multisites. Barring that, it's a lifesaver for fielding potential questions from clients.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. &lt;a href="https://wordpress.org/plugins/password-protected/" rel="noopener noreferrer"&gt;Password Protected&lt;/a&gt; by WPExperts
&lt;/h3&gt;

&lt;p&gt;Does your host not allow basic auth or make it difficult to set up? Try Password Protected. This sets up basic auth for your WordPress site in minutes. You may even add IPs to an allow list so that you are not constantly pestered by the password prompt. This plugin was recommended to me by &lt;a href="https://pressable.com" rel="noopener noreferrer"&gt;Pressable&lt;/a&gt;, and it's now part of my developer arsenal.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. &lt;a href="https://wordpress.org/plugins/query-monitor/" rel="noopener noreferrer"&gt;Query Monitor&lt;/a&gt; by John Blackbourn
&lt;/h3&gt;

&lt;p&gt;If you need to pull back the curtain and see what WordPress is doing in the background or want to improve the performance of your queries, try Query Monitor. It will give you an overwhelming amount of query data that can be used to fine-tune or debug your queries. This plugin hooks deeply into WordPress, so make sure you disable it in production.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. &lt;a href="https://wordpress.org/plugins/debug-bar/" rel="noopener noreferrer"&gt;Debug Bar&lt;/a&gt; by wordpress.org
&lt;/h3&gt;

&lt;p&gt;This plugin adds debugging information right to your admin bar so you can quickly see logs for queries, caches, and other useful debugging info. Query Monitor can be overwhelming at times, however, this plugin is a bit more manageable. I would also recommend that this plugin not be used in production environments.&lt;/p&gt;

&lt;h3&gt;
  
  
  10. &lt;a href="https://www.advancedcustomfields.com/blog/installing-and-upgrading-to-the-latest-version-of-acf/" rel="noopener noreferrer"&gt;Advanced Custom Fields&lt;/a&gt; by WP Engine
&lt;/h3&gt;

&lt;p&gt;ACF is an essential plugin if you want to add custom fields to the CMS quickly and with ease. There is a free version of this plugin, but I would recommend getting a license, as it unlocks considerably more features, including the ability to build blocks without any React knowledge. It has a host of useful functions and filters that can be leveraged to make overall WordPress development less of a headache. I’m particularly fond of the &lt;code&gt;get_field()&lt;/code&gt; and &lt;code&gt;acf_slugify()&lt;/code&gt; helper functions. It’s a powerhouse of a plugin.&lt;/p&gt;

&lt;h3&gt;
  
  
  11. &lt;a href="https://wordpress.org/plugins/limit-login-attempts-reloaded/" rel="noopener noreferrer"&gt;Limit Login Attempts Reloaded&lt;/a&gt; By Limit Login Attempts Reloaded
&lt;/h3&gt;

&lt;p&gt;You’ve put a lot of work into your new site, you put it live and bask in its glory. Wouldn’t it be a shame if something happened to it? It doesn’t take long at all before some bot or hacker tries to brute force their way into your backend. This is a simple plugin that will block multiple attempts to log into your admin area. By default, any more than 3 attempts, and that IP will be blocked for 20 mins from trying to log into your site. That’s usually enough to stop a hacker in their tracks, as most are looking for easy targets, especially fresh installs. There is a pro version that allows you to do things like block IPs from entire countries, but the base version does a pretty good job with basic features.&lt;/p&gt;

&lt;h3&gt;
  
  
  12. &lt;a href="https://en-ca.wordpress.org/plugins/smntcs-disable-rest-api-user-endpoints" rel="noopener noreferrer"&gt;SMNTCS Disable REST API User Endpoints&lt;/a&gt; by Niels Lange
&lt;/h3&gt;

&lt;p&gt;Now with security in mind, did you know how easy for someone to find a list of every single user on your site? Very easy, just hit this endpoint on your WordPress site &lt;code&gt;/wp-json/wp/v2/users&lt;/code&gt;, and you’ll get the whole list, and that’s how hackers can probably deduce which user is an admin, and which accounts to target. This lightweight plugin disables that endpoint, so as long as you don’t need it for anything else, you can rest easy knowing that you’ve given potential nere-do-wells one more obstacle to deal with. There are ways to disable this with code, but this plugin is handy for the no-code approach.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Update Oct 11, 2024&lt;/strong&gt;: ACF download link has been updated, as it is no longer in the wordpress.org plugin directory due to the ongoing dispute.&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>beginners</category>
      <category>opensource</category>
    </item>
    <item>
      <title>WCEU23: Block Workshops Recap</title>
      <dc:creator>Christina Garofalo</dc:creator>
      <pubDate>Wed, 28 Jun 2023 14:05:25 +0000</pubDate>
      <link>https://dev.to/plank/wceu23-block-workshops-recap-254i</link>
      <guid>https://dev.to/plank/wceu23-block-workshops-recap-254i</guid>
      <description>&lt;p&gt;I attended 2 workshops this year at WCEU23 in Athens, both were about blocks. &lt;a href="https://plank.co"&gt;At Plank, we create custom WordPress themes for clients that almost always involve custom blocks.&lt;/a&gt; It's a subject that's been unavoidable since the introduction of them in WordPress 5.0 - and we like them. It allows us to create modular designs that give our clients the power to layout their content that stays consistent with their branding without constantly involving developers after the site launch. So naturally I was interested in seeing what the rest of the WordPress community was up to when it came to the subject of blocks.&lt;/p&gt;

&lt;p&gt;The first workshop I attended was by Luis Herranz ( &lt;a class="mentioned-user" href="https://dev.to/luisherranz"&gt;@luisherranz&lt;/a&gt; ), "&lt;a href="https://europe.wordcamp.org/2023/session/building-interactive-blocks-a-step-by-step-workshop/"&gt;Building interactive blocks: a step-by-step workshop&lt;/a&gt;". According to Luis, the interactive API will hopefully be making its debut in WordPress 6.4 🤞. The goal of the Interactive API is to facilitate implementing interactive features into blocks natively, such as “heart this post” or “add to cart” without page reload. You can read his proposal for the interactive API &lt;a href="https://make.wordpress.org/core/2023/03/30/proposal-the-interactivity-api-a-better-developer-experience-in-building-interactive-blocks/"&gt;here&lt;/a&gt;. You can download the repo from the workshop here and jump through the steps of his example &lt;a href="https://github.com/luisherranz/wceu2023"&gt;here&lt;/a&gt;. Personally, I can't wait to see this feature in core.&lt;/p&gt;

&lt;p&gt;The second workshop I attended was by Robert Richardson, "&lt;a href="https://europe.wordcamp.org/2023/session/code-techniques-for-handling-dynamic-data-in-the-newish-world-of-blocks/"&gt;Code techniques for handling dynamic data in the new(ish) world of blocks&lt;/a&gt;". What was interesting about this workshop, for me, wasn't really anything new; but it was really assuring to me that Plank's on the right track concerning the development of blocks. When he asked the room of about 50-60 attendees "who was using custom REST API endpoints to pass data to their blocks", I was the only one who raised their hand! I was honestly shocked that no one else seemed to take this approach to handling data. I recommend leveraging the &lt;a href="https://developer.wordpress.org/rest-api/"&gt;REST API&lt;/a&gt; capabilities of WordPress for use in your blocks. It's very easy to set up, and very powerful. React developers will have a field day.&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>workshops</category>
      <category>wordcamp</category>
      <category>gutenburg</category>
    </item>
    <item>
      <title>Contributor Day at WCEU23 in Athens</title>
      <dc:creator>Christina Garofalo</dc:creator>
      <pubDate>Mon, 26 Jun 2023 18:34:44 +0000</pubDate>
      <link>https://dev.to/plank/contributor-day-at-wceu23-in-athens-15c1</link>
      <guid>https://dev.to/plank/contributor-day-at-wceu23-in-athens-15c1</guid>
      <description>&lt;p&gt;At WordCamp EU in Athens this year, I had the pleasure of joining the Documentation Team on Contributor day, lead by Melina Cap ( &lt;a class="mentioned-user" href="https://dev.to/zzap"&gt;@zzap&lt;/a&gt; ). The Documentation Team was very welcoming and it allowed me to immediately jump right into working on real issues within the hour after reading some brief &lt;a href="https://make.wordpress.org/docs/2022/06/13/live-onboarding-sessions-for-the-documentation-team/"&gt;onboarding material&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The process of contributing to the Documentation Team is fairly straightforward, and anyone of any experience level can participate. As a matter of fact, people with no experience actually have an edge, as they can more easily find the gaps or mistakes in the documentation. All you need is a &lt;a href="https://wp.org"&gt;wp.org&lt;/a&gt; and a &lt;a href="https://github.com"&gt;GitHub&lt;/a&gt; account. There is no need to "pull down", set up a repository, or have a dev environment setup; just start contributing by leaving comments with your edits and suggestions on the GitHub issue.&lt;/p&gt;

&lt;p&gt;On that note, the &lt;a href="https://playground.wordpress.net"&gt;WordPress Playground&lt;/a&gt; has launched, and you can now run WordPress in your browser, facilitating the process greatly. &lt;/p&gt;

&lt;p&gt;So now that I was off to a great start and knew the process for contributing, I was able to update the screenshots and record some new video for two issues during the day.&lt;/p&gt;

&lt;p&gt;When I returned from Athens, I joined the #docs &lt;a href="https://make.wordpress.org/chat/"&gt;WordPress Slack&lt;/a&gt; channel, and attended my first online documentation team meeting. (They are held every Tuesday, and every 4th meeting is an online contributor day.)&lt;/p&gt;

&lt;p&gt;Since joining the team I have contributed to at least six issues, and I find it incredibly rewarding to finally be able to give back to the WordPress community.&lt;/p&gt;

&lt;p&gt;If you would like to join the Documentation Team, be sure to check out the onboarding material &lt;a href="https://make.wordpress.org/docs/2022/06/13/live-onboarding-sessions-for-the-documentation-team/"&gt;here&lt;/a&gt;. If you would like to join any of the other WordPress contributor teams, be sure to check out &lt;a href="https://make.wordpress.org"&gt;make.wordpress.org&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>documentation</category>
      <category>wordcamp</category>
      <category>wceu</category>
    </item>
  </channel>
</rss>
