It may be hard to imagine, but there was a time when it was rare to find high-quality photography on a typical website. Only the big-budget players had access to compelling images. And even then, they were likely borrowed from existing print materials.
Those of us building websites for smaller organizations were often left with less-than-ideal solutions. A lack of available resources made it all the more challenging. We were forced to settle for the likes of clipart (yikes) or low-quality images culled from stock CDs. Short of creating your own artwork, it wasn’t easy to craft a top-notch visual experience.
How things have changed. These days, stock photography is available from all corners of the web. You’ll find everything from completely free images all the way to high-end premium options.
Still, the mere existence of these images doesn’t necessarily translate to great design. It still takes a keen eye and smart implementation to find success.
Today, we’ll look at the impact stock photography has had on web design. We’ll cover both the good and the bad, along with some tips for finding the right images for your projects.
Bringing Visual Experiences to the Masses
Perhaps the biggest benefit of using stock photography on a website is the ability to create a highly visual presentation. Long passages of uninterrupted text are often frowned upon. They’re more likely to turn users off than captivate them. Adding some photography to the mix helps to break things up into bite-sized pieces.
In theory, this also enables a page that’s light on content to appear more substantial. Before the widespread use of stock images, it wasn’t easy to dress up a page that consisted of only a paragraph or two. Images can help provide a more professional and detail-oriented look.
The other big advancement is that these images make it easier to convey a message. That might take the form of an infographic that simplifies a complex idea. But it could also be a photo that sets the mood or an icon that makes user interaction more intuitive.
In this way, stock photography has brought the potential for a great visual experience to the masses. Now, even small and low-budget websites have an opportunity to stand out.
The Limitations of Stock Photos
In an age where we have access to just about every piece of recorded media, there are still limitations. For example, just because your music app has millions of songs doesn’t mean it includes all of your favorites.
Stock photography has similar constraints. The available images don’t always fit your exact needs. The size, format, and subject matter aren’t always a perfect match. There are occasions when web designers will have to settle for “good enough.”
There are a few factors that can further cloud the picture, so to speak:
Budget
Cost doesn’t necessarily correlate with quality. It’s possible to find some outstanding photos for free. But free resources don’t always have the greatest variety of images, either. Therefore, the lower your budget, the less choice you have.
Being Fenced-in By Membership Sites
A growing number of stock photo membership websites are popping up. You pay a monthly or yearly fee in exchange for access to photographs. If you find a number of images that you can use in a project, it’s often a good value.
Yet this type of deal can also be quite limiting. For designers who spend the bulk of their asset budget on a membership, you’re pretty much stuck with what they have to offer. Suppose their selection doesn’t fit your specific needs, too bad. You may have to find another resource for more relevant images or settle for what’s available.
Lack of Originality
While there are tons of stock photos available, it seems like a good chunk of what’s out there has become cliché. Photographers and service providers are attempting to cover common subjects and broad use cases. This has led to a certain sameness across various photo resources.
And there’s the rub of stock photography. It can’t possibly serve each website’s unique needs. There are only so many ways, for instance, to photograph two people shaking hands.
Copyright Confusion
One thing that hasn’t really changed over the years is copyright confusion. Back in the day, designers and website owners often grabbed images from other sites and posted them. They did so without a thought as to their usage restrictions. A steady stream of violation letters from copyright trolls put an end to that.
But licensing can still be difficult to understand – even from reputable stock photography resources. There are cases where images are for editorial use only. There have also been restrictions as to maximum image resolution for online posting. Figuring out how and where an image can be used may scare some people away altogether.
Finding the Right Stock Photography for Your Projects
Sometimes finding the right photos for your website is a bit like locating a needle in a haystack. What you need (or something close to it) likely exists, but you might have to dig through several resources before finding it. Situations that require client approval of images make things all the more difficult.
And while there are no guarantees that you’ll find the perfect match, there are some basic things you can do to better your chances. Here are a few techniques to employ when searching for the best stock photos:
Identify Your Favorite Resources
It’s helpful to have various stock photography websites that you trust. Some of these resources might cater to a specific niche and will come in handy on occasion. Others will have a broader focus and be great for your day-to-day needs.
The key is to avoid reliance on a single resource. Instead, find a handful of places that have quality images, clear usage terms, and different styles. This provides both you and your clients with a solid number of image options.
Think About Your Image Needs Ahead of Time
Each website project has its own unique needs when it comes to photography. They include factors such as a photo’s subject, color, size and any enhancements you may want to make. Having a general outline of these items should make your search easier.
Ideally, knowing this information will allow you to choose the best fit from your list of photo resources – right from the start. This (hopefully) means less searching and a more efficient process.
Be Flexible
Having a rigid definition of what you’re looking for can sometimes backfire. Even the best stock photo websites are unlikely to have images that are identical to what you envisioned. Therefore, it pays to keep an open mind.
Don’t be afraid to experiment with images that aren’t 100% aligned with your initial plan. Choose a few that look interesting and see how they work with your design. In some cases, the results may be even better than anticipated.
Stock Photography Is a Tool: Use It Wisely
Few design assets have the ability to transform a website quite like great photography. It can take a run-of-the-mill design and turn it into something with character and context. Stock photography, in particular, has brought this visual potential to everyone.
However, best practices still apply. Just like anything else, stock photos can be misused and abused. The result might well be a bloated website that’s too image-heavy. In addition, the wrong types of images can lead to a generic look that fails to stand out.
While it’s wonderful to have so many photographic resources, it’s up to designers to make the best use of them. For this reason, it’s good to think of stock photography as just another tool for us to utilize – not something to build a website around or save it from mediocrity.
Despite those caveats, stock photography has made a positive impact on web design. Frankly, it’s hard to imagine building a compelling website without it.
Introducing 5.8 “Tatum”, our latest and greatest release now available for download or update in your dashboard. Named in honor of Art Tatum, the legendary Jazz pianist. His formidable technique and willingness to push boundaries inspired musicians and changed what people thought could be done.
So fire up your music service of choice and enjoy Tatum’s famous recordings of ‘Tea for Two’, ‘Tiger Rag’, ‘Begin the Beguine’, and ‘Night and Day’ as you read about what the latest WordPress version brings to you.
Three Essential Powerhouses
Manage Widgets with Blocks
After months of hard work, the power of blocks has come to both the Block Widgets Editor and the Customizer. Now you can add blocks both in widget areas across your site and with live preview through the Customizer. This opens up new possibilities to create content: from no-code mini layouts to the vast library of core and third-party blocks. For our developers, you can find more details in the Widgets dev note.
Display Posts with New Blocks and Patterns
The Query Loop Block makes it possible to display posts based on specified parameters; like a PHP loop without the code. Easily display posts from a specific category, to do things like create a portfolio or a page full of your favorite recipes. Think of it as a more complex and powerful Latest Posts Block! Plus, pattern suggestions make it easier than ever to create a list of posts with the design you want.
Edit the Templates Around Posts
You can use the familiar block editor to edit templates that hold your content—simply activate a block theme or a theme that has opted in for this feature. Switch from editing your posts to editing your pages and back again, all while using a familiar block editor. There are more than 20 new blocks available within compatible themes. Read more about this feature and how to experiment with it in the release notes.
Three Workflow Helpers
Overview of the Page Structure
Sometimes you need a simple landing page, but sometimes you need something a little more robust. As blocks increase, patterns emerge, and content creation gets easier, new solutions are needed to make complex content easy to navigate. List View is the best way to jump between layers of content and nested blocks. Since the List View gives you an overview of all the blocks in your content, you can now navigate quickly to the precise block you need. Ready to focus completely on your content? Toggle it on or off to suit your workflow.
Suggested Patterns for Blocks
Starting in this release the Pattern Transformations tool will suggest block patterns based on the block you are using. Right now, you can give it a try in the Query Block and Social Icon Block. As more patterns are added, you will be able to get inspiration for how to style your site without ever leaving the editor!
Style and Colorize Images
Colorize your image and cover blocks with duotone filters! Duotone can add a pop of color to your designs and style your images (or videos in the cover block) to integrate well with your themes. You can think of the duotone effect as a black and white filter, but instead of the shadows being black and the highlights being white, you pick your own colors for the shadows and highlights. There’s more to learn about how it works in the documentation.
For Developers to Explore
Theme.json
Introducing the Global Styles and Global Settings APIs: control the editor settings, available customization tools, and style blocks using a theme.json file in the active theme. This configuration file enables or disables features and sets default styles for both a website and blocks. If you build themes, you can experiment with this early iteration of a useful new feature. For more about what is currently available and how it works, check out this dev note.
Dropping support for IE11
Support for Internet Explorer 11 has been dropped as of this release. This means you may have issues managing your site that will not be fixed in the future. If you are currently using IE11, it is strongly recommended that you switch to a more modern browser.
Adding support for WebP
WebP is a modern image format that provides improved lossless and lossy compression for images on the web. WebP images are around 30% smaller on average than their JPEG or PNG equivalents, resulting in sites that are faster and use less bandwidth.
Adding Additional Block Supports
Expanding on previously implemented block supports in WordPress 5.6 and 5.7, WordPress 5.8 introduces several new block support flags and new options to customize your registered blocks. More information is available in the block supports dev note.
Check the Field Guide for more!
Check out the latest version of the WordPress Field Guide. It highlights developer notes for each change you may want to be aware of: WordPress 5.8 Field Guide.
The Squad
The WordPress 5.8 release was lead by Matt Mullenweg, and supported by this highly enthusiastic release squad:
In addition to these contributors, many thanks to all of the community volunteers who contribute in the support forums. They answer questions from people across the world, whether they are using WordPress for the first time, or they’ve been around since the first release all the way back in 2003. These releases are as successful as they are because of their efforts!
Finally, thanks to all the community translators who help make WordPress available in over 200 languages for every release. 80 languages have translated 80% or more WordPress 5.8 and our community translators are hard at work ensuring more languages are on their way. If contributing to WordPress appeals to you, it’s easy to learn more. Check out Make WordPress or the core development blog.
Introducing 5.8 “Tatum”, our latest and greatest release now available for download or update in your dashboard. Named in honor of Art Tatum, the legendary Jazz pianist. His formidable technique and willingness to push boundaries inspired musicians and changed what people thought could be done.
So fire up your music service of choice and enjoy Tatum’s famous recordings of ‘Tea for Two’, ‘Tiger Rag’, ‘Begin the Beguine’, and ‘Night and Day’ as you read about what the latest WordPress version brings to you.
Three Essential Powerhouses
Manage Widgets with Blocks
After months of hard work, the power of blocks has come to both the Block Widgets Editor and the Customizer. Now you can add blocks both in widget areas across your site and with live preview through the Customizer. This opens up new possibilities to create content: from no-code mini layouts to the vast library of core and third-party blocks. For our developers, you can find more details in the Widgets dev note.
Display Posts with New Blocks and Patterns
The Query Loop Block makes it possible to display posts based on specified parameters; like a PHP loop without the code. Easily display posts from a specific category, to do things like create a portfolio or a page full of your favorite recipes. Think of it as a more complex and powerful Latest Posts Block! Plus, pattern suggestions make it easier than ever to create a list of posts with the design you want.
Edit the Templates Around Posts
You can use the familiar block editor to edit templates that hold your content—simply activate a block theme or a theme that has opted in for this feature. Switch from editing your posts to editing your pages and back again, all while using a familiar block editor. There are more than 20 new blocks available within compatible themes. Read more about this feature and how to experiment with it in the release notes.
Three Workflow Helpers
Overview of the Page Structure
Sometimes you need a simple landing page, but sometimes you need something a little more robust. As blocks increase, patterns emerge, and content creation gets easier, new solutions are needed to make complex content easy to navigate. List View is the best way to jump between layers of content and nested blocks. Since the List View gives you an overview of all the blocks in your content, you can now navigate quickly to the precise block you need. Ready to focus completely on your content? Toggle it on or off to suit your workflow.
Suggested Patterns for Blocks
Starting in this release the Pattern Transformations tool will suggest block patterns based on the block you are using. Right now, you can give it a try in the Query Block and Social Icon Block. As more patterns are added, you will be able to get inspiration for how to style your site without ever leaving the editor!
Style and Colorize Images
Colorize your image and cover blocks with duotone filters! Duotone can add a pop of color to your designs and style your images (or videos in the cover block) to integrate well with your themes. You can think of the duotone effect as a black and white filter, but instead of the shadows being black and the highlights being white, you pick your own colors for the shadows and highlights. There’s more to learn about how it works in the documentation.
For Developers to Explore
Theme.json
Introducing the Global Styles and Global Settings APIs: control the editor settings, available customization tools, and style blocks using a theme.json file in the active theme. This configuration file enables or disables features and sets default styles for both a website and blocks. If you build themes, you can experiment with this early iteration of a useful new feature. For more about what is currently available and how it works, check out this dev note.
Dropping support for IE11
Support for Internet Explorer 11 has been dropped as of this release. This means you may have issues managing your site that will not be fixed in the future. If you are currently using IE11, it is strongly recommended that you switch to a more modern browser.
Adding support for WebP
WebP is a modern image format that provides improved lossless and lossy compression for images on the web. WebP images are around 30% smaller on average than their JPEG or PNG equivalents, resulting in sites that are faster and use less bandwidth.
Adding Additional Block Supports
Expanding on previously implemented block supports in WordPress 5.6 and 5.7, WordPress 5.8 introduces several new block support flags and new options to customize your registered blocks. More information is available in the block supports dev note.
Check the Field Guide for more!
Check out the latest version of the WordPress Field Guide. It highlights developer notes for each change you may want to be aware of: WordPress 5.8 Field Guide.
The Squad
The WordPress 5.8 release was lead by Matt Mullenweg, and supported by this highly enthusiastic release squad:
In addition to these contributors, many thanks to all of the community volunteers who contribute in the support forums. They answer questions from people across the world, whether they are using WordPress for the first time, or they’ve been around since the first release all the way back in 2003. These releases are as successful as they are because of their efforts!
Finally, thanks to all the community translators who help make WordPress available in over 200 languages for every release. 80 languages have translated 80% or more WordPress 5.8 and our community translators are hard at work ensuring more languages are on their way. If contributing to WordPress appeals to you, it’s easy to learn more. Check out Make WordPress or the core development blog.
Added alpine 3.13 and 3.14 into building test (#4309) (@limingxinleo)
xlswriter 1.4.0
- Fix disable reader build failed.
- Fix insertDate use curtom format segmentation fault.
- Feat custom free resource.
- Feat writer validation.
- Feat writer data validation can be applied to a single cell or a range of cells.
- Feat reader add file path in open file exception message.
- Feat exit worksheet.
- Feat set paper.
- Feat set margins.
- Build read module is enabled by default.
- Perfect exception message.
- Compatible PHP 8.1 API.
- Destructive rename method setPrintedLandscape to setLandscape
- Destructive rename method setPrintedPortrait to setPortrait
runkit7 4.0.0a3
- Fix edge case copying internal functions in runkit7_function_redefine
- Avoid conflicts with other extensions that use reserved memory slots for internal function definitions.
- Fix compilation and test errors in php 8.1
- Allow using objects in global constants and class constants in php 8.1+ (https://wiki.php.net/rfc/new_in_initializers)
- Make runkit_constant_redefine fail if the constant does not already exist
- Make runkit_constant_remove/redefine fail on enum cases (support for modifying enum cases is not implemented)
mongodb 1.10.0
** Bug
* [PHPC-1420] - Using replicaSet triggers __fortify_fail() from /lib64/libc.so.6
* [PHPC-1529] - Reset libmongocrypt's key vault client after forking
* [PHPC-1720] - Move mongoc_client_set_error_api after check for null client pointer
* [PHPC-1721] - Fix argument order for some ecalloc function calls
* [PHPC-1722] - Persistent clients and their HashTable should be destroyed in GSHUTDOWN
* [PHPC-1870] - Fix zSeries build failure due to redefinition of WORDS_BIGENDIAN
* [PHPC-1879] - Session::getTransactionOptions() leaks mongoc_transaction_opt_t
** Epic
* [PHPC-1666] - Allow per-client event subscribers
* [PHPC-1731] - Versioned MongoDB API for Drivers
* [PHPC-1756] - Remove all oppressive and unnecessarily gendered language from driver projects
** New Feature
* [PHPC-1645] - Allow disabling of libmongoc client persistence
* [PHPC-1684] - Support Azure and GCP keystores in FLE
* [PHPC-1716] - Allow configuring ServerApi in Manager class
* [PHPC-1804] - Implement Manager::addSubscriber and removeSubscriber
** Task
* [PHPC-1513] - Remove php_phongo_cursor_to_zval
* [PHPC-1685] - Drop support for PHP 7.0
* [PHPC-1782] - Support Removal of Several Platform Builds
* [PHPC-1792] - Update copyright years in file headers
* [PHPC-1835] - Rotate credentials and environment vars for Atlas connectivity tests
* [PHPC-1841] - Remove oppressive language from the documentation
* [PHPC-1842] - Remove oppressive language from the source code
* [PHPC-1848] - Test against 5.0 servers
* [PHPC-1864] - Cut 5.0 Compat. GA Release
* [PHPC-1866] - Specify 5.0 cursor behaviour
* [PHPC-1872] - Fix server-executeQuery-008.phpt for RS config with arbiter
* [PHPC-1877] - MongoDB 5.0.0-rc2 cannot be downloaded on rhel71-power8
** Improvement
* [PHPC-1366] - Declare libbson vtable in MINIT instead of using a global
* [PHPC-1367] - Move libmongoc init/cleanup within scope of custom libbson vtable
* [PHPC-1474] - Expose transaction information in debug info for session
* [PHPC-1490] - Add support for var_export() and __set_state() in CursorId.c
* [PHPC-1681] - Support parsing $uuid as extended JSON representation for subtype 4 binary
* [PHPC-1737] - Use zend_hash_graceful_reverse_destroy to free persistent client HashTable
* [PHPC-1753] - Define error handling behavior of writeErrors and writeConcernError on Mongos
* [PHPC-1754] - Drivers should not inspect error messages for "not master" or "node is recovering"
* [PHPC-1762] - Expose the Reason an Operation Fails Document Validation
* [PHPC-1765] - Mitigate pain of using field names with dots and dollars
* [PHPC-1791] - Specify correct return type in __set_state protos
* [PHPC-1798] - Update serverSelectionTimeoutMS of MongoClient to mongocryptd
* [PHPC-1803] - Use "hello" command when API Version is declared
* [PHPC-1813] - Unpin session after aborting a transaction
* [PHPC-1821] - Driver Handling of DBRefs
* [PHPC-1836] - Remove slaveOK connection string option from URI parsing
* [PHPC-1840] - Use "hello" command for monitoring if supported
* [PHPC-1855] - Bump maxWireVersion for MongoDB 5.0
datadog_trace 0.61.0
### Added
- Add DDTraceget_current_context #1227
- Create property ZAI seam for PHP 8 #1246
- Create exceptions ZAI seam for PHP 8 #1248
- Run mongodb-driver testsuite in CI with and without the tracer #1255
### Changed
- Move mapping-settings to be deserialized as a zend_array * #1253
### Fixed
- Remove TSRMLS_C from DDTracecurrent_context #1249
Today, we have put together a collection of high-quality free floral vector packs for you. No matter what the medium of creation be, floral designs have always enjoyed a special position in the world of art.
Right from the days of cave paintings, passing through to Oriental calligraphy impressions and all the way down to the present day, everyone has loved floral designs and backgrounds.
WordPress is known for its incredible versatility. The content management system (CMS) provides developers with many ways to customize both the front and back ends.
This opens a whole world of possibilities when it comes to form and function. The ability to create fully-custom themes and plugins offers a path to building virtually any type of website. But it doesn’t end there.
Features like custom post types and taxonomies, along with custom fields allow for highly-specialized content. It can be organized in a way that fits your needs like a glove.
In addition, there are an endless array of smaller customizations. Code snippets targeting hooks and filters let you tweak existing functionality even further. And we’re only scratching the surface of what’s possible.
However, with all of this power comes some responsibility. Customizing WordPress requires some planning. And there are several important factors to consider. So, before you fire up that code editor, here are some things you should know about the process.
A Staging Site is a Must-Have Feature for Testing
Creating some custom functionality for your WordPress website? Avoid building it directly on your production site if at all possible. There are simply too many things that can go wrong.
One false move can lead to usability/performance problems or even downtime. Perhaps it’s not as big of a deal on a small site with few visitors. But a busy eCommerce or membership website? That could cost you both sales and customer loyalty.
This underscores the importance of having a staging site. It provides a playground of sorts where customizations can be tested before being made public. The idea is to hopefully catch and repair any issues before they impact users.
What’s more, there are a number of ways to set up a staging environment. Some web hosts offer them as part of their services. But you can also create your own either online or on your local machine.
Testing this way is very much worth the extra effort.
The Method for Implementing Customizations Matters
Part of the beauty of WordPress is that you can implement custom code in a number of ways. But it also has the potential to become problematic.
For example, a custom code snippet can easily be placed into your theme’s functions.php file. That is fine for the short term. But what happens when you change themes down the road?
Launching a redesign with a new theme will result in a loss of those customizations. And while moving any snippets to the new theme is possible, they could well get lost in the shuffle. Depending on the nature of the custom code, some key functionality may end up missing. In this type of situation, creating a custom plugin would be the more future-friendly solution.
When it comes to making changes to a third-party theme, there are similar considerations. Adding or editing code directly within the theme means potentially overwriting changes during an update. The best way around that issue is by utilizing a child theme.
The universal point is that, regardless of what you’re trying to achieve, it’s important to implement customizations in a way that will stand the test of time. Keeping things well-organized is also recommended so that you won’t have to search around in several different places to find what you need.
There Will Be Future Maintenance Requirements
Neither WordPress nor its ecosystem of themes and plugins remain static. They evolve with the times. That means the code we write today will likely need to be maintained on a regular basis.
This follows the evolution of WordPress itself, but also of the variety of languages and libraries it depends on. PHP, JavaScript libraries such as jQuery and React, and CSS are prime examples. A change to these dependencies can impact performance and whether or not a particular feature still works.
Not only that, but plugins and themes also have their own agendas to implement. New features are added at a breakneck speed in this competitive environment. The ever-shifting Gutenberg block editor is also a moving target. This can lead to more compatibility issues as new versions continually roll out.
Therefore, you’ll want to pay close attention to what’s happening in these areas. Changes to WordPress core, themes, plugins, or dependencies could directly impact your existing customizations.
Customizing WordPress Is Serious Business
The mere act of customizing WordPress is one thing. But going about it the right way is another. It’s not something to dive into without some serious thought.
It’s important to consider what you want to accomplish, how it will be implemented, and how to keep it running smoothly into the future. The answers often come down to planning ahead and following best practices.
If you’re extending the functionality of WordPress itself or a plugin, read up on the documentation. There are likely some established methods built-in for getting the results you need.
The other side of the coin involves staying within coding standards. For example, eschewing any deprecated PHP or JavaScript and opting for the latest stable techniques. This will keep your code compliant and hopefully easier to maintain over time.
Keeping these things in mind will lead to more complete and sustainable results. That’s something that will benefit every WordPress developer.
In March, news broke that two malicious commits were introduced onto the in-development PHP 8.1 branch by perpetrators pretending to be Rasmus Lerdorf and Nikita Popov. The response by the PHP community to this attack was a shining example of the openness and transparency of the open-source world.
We’re going to take a closer look at the PHP 8.1 story to uncover what lessons there are to be learned on the value of visibility in coding.