Free tools Windows power users keep installed
One-click scans. No signup required.
iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
WordPress Block Bindings connects a block attribute to dynamic data. The block keeps its ordinary attribute as a fallback, while WordPress resolves a registered source when it renders the post. You can use built-in sources for post meta, post data, terms, and pattern overrides, or register your own source in PHP. WordPress 6.5 introduced the API; WordPress 6.7 added JavaScript registration for editor-side reading and editing.
What the Block Bindings API does
A block normally stores values such as paragraph text, an image URL, or a button link in its attributes. Block Bindings adds a mapping between one of those attributes and a data source. The mapping is stored in the block’s metadata.bindings object. At render time, WordPress calls the source and uses its returned value for the compatible attribute.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsThe original attribute is not discarded. It remains a fallback, so the block still has useful content when the source returns no value. This makes a bound block safer than replacing the attribute with custom rendering logic: existing content can continue to display while a record is incomplete or a source is temporarily unavailable.
The API is available only in WordPress 6.5 and later. A site that needs bound values to be read or edited through the block editor should use WordPress 6.7 or later, which adds client-side source registration.
#1 Best Overall
- Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
- With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
- Wide Application: attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
- Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
- Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.
Check compatibility before writing code
Bindings are not automatically accepted by every block attribute. The default compatibility list is limited to the attributes below, and it can change in later WordPress releases. Check the handbook for the version your site runs before committing to a design.
| Block | Attributes compatible with bindings |
|---|---|
core/image |
id, url, title, alt, caption |
core/heading |
content |
core/paragraph |
content |
core/button |
url, text, linkTarget, rel |
core/navigation-link |
url |
core/navigation-submenu |
url |
core/post-date |
datetime |
If the attribute you need is absent, a binding will not make that attribute dynamic through the default API. Choose a compatible attribute, use a different block structure, or wait for support in the target release instead of assuming that arbitrary attributes will work.
Choose a source: built-in or custom
WordPress includes four built-in source families:
core/post-metareads registered post metadata.core/post-datareads data associated with the current post.core/term-datareads term data.core/pattern-overridessupplies values intended for pattern overrides.
Use a built-in source when it already represents the value you need. A custom source is appropriate when the value comes from a plugin’s domain model, needs transformation, or must combine several fields. Built-in sources reduce maintenance; custom sources give you control over the lookup and output.
| Decision | Use this when | Main trade-off |
|---|---|---|
| Built-in source | The required value already exists in post, term, or pattern data. | Less code, but less control over how the value is calculated. |
| Custom PHP source | A plugin must calculate or retrieve a value itself. | Requires registration, callback logic, and a stable source name. |
| Server-only registration | The value only needs to appear in rendered output. | The editor does not gain source-specific editing behavior. |
| PHP plus JavaScript registration | The editor must read the value or save changes to it. | More code and explicit permission handling are required. |
Prepare post meta for a binding
The post-meta source can use only metadata that is exposed through the REST API. Register the field with show_in_rest set to true. Protected keys beginning with an underscore cannot be used with Block Bindings, so choose a public key such as rating rather than _rating.
A registration can be placed on the init hook. For example:
Rank #2
- Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
- Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
- Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
- Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
- Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
<?php
add_action( 'init', function () {
register_post_meta( '', 'rating', array(
'show_in_rest' => true,
'single' => true,
'type' => 'string',
) );
} );
Use a type and storage model that match the value your site writes. The important binding requirements are REST exposure and a key that is not protected by a leading underscore. Confirm the meta is registered before testing the block; otherwise a binding can appear correctly in markup while returning no usable value.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Register a custom source in PHP
Custom sources are registered with register_block_bindings_source(). Registration must happen on init. Source names use a namespace and slug separated by a slash, with lowercase letters, numbers, dashes, and the slash itself.
The callback receives three arguments: $source_args, the block instance, and the attribute name being resolved. It may return a replacement value, null, or false, depending on the behavior you want for that attribute.
<?php
add_action( 'init', function () {
register_block_bindings_source(
'my-plugin/product-rating',
array(
'label' => __( 'Product rating', 'my-plugin' ),
'get_value_callback' => function ( array $source_args, $block_instance, string $attribute_name ) {
$key = $source_args['key'] ?? '';
if ( ! $key ) {
return null;
}
return get_post_meta(
$block_instance->context['postId'],
$key,
true
);
},
'uses_context' => array( 'postId' ),
)
);
} );
What each registration field means
my-plugin/product-ratingis the identifier that block markup must use. Keep it namespaced so it does not collide with another plugin.labelis the human-readable name for the source.get_value_callbackis called when WordPress needs the bound attribute’s value.$source_argscontains arguments supplied by the block’s binding declaration.$block_instancegives the callback access to the block and its context.$attribute_nameidentifies the compatible attribute currently being resolved; use it when one source needs different behavior for different attributes.uses_contextrequests context keys that the callback needs. The example requestspostIdso it can read metadata from the current post.
The example returns null when no metadata key was supplied. That allows the block’s fallback attribute to remain available instead of attempting a lookup with an empty key.
Attach the source to a block
Add a metadata.bindings object to the block’s serialized markup. The key inside bindings is the block attribute being connected. The source value must exactly match the name registered in PHP, and the optional args object is passed to the callback as $source_args.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteRank #3
- 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
- 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
- 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
- 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
- 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
<!-- wp:paragraph {
"metadata": {
"bindings": {
"content": {
"source": "my-plugin/product-rating",
"args": { "key": "rating" }
}
}
}
} -->
<p>Fallback text</p>
<!-- /wp:paragraph -->
Here, the paragraph’s content attribute is bound to the custom source. The rating key travels through args, and the paragraph text remains a fallback if the callback does not return a value.
Binding more than one attribute
A block can declare separate mappings for compatible attributes by adding additional entries under metadata.bindings. Each entry must target an attribute supported by that block. Keep each source argument explicit; a callback should not have to guess which field a block intends to read.
Supply post-aware context correctly
Many bindings are specific to the post being rendered. PHP requests that context with uses_context, and JavaScript requests it with usesContext. The common keys include postId and postType.
Once postId is declared, the PHP callback reads it from $block_instance->context['postId']. On the editor side, the corresponding context is available in the callback arguments. Request only the keys the source actually uses: a smaller context declaration makes the source’s data dependency clear and avoids coupling it to unrelated editor state.
Recommended Free Tools
For a source that is not tied to a particular post, omit post context and derive the value solely from its arguments or another stable source. Do not assume that postId exists when the block can be rendered outside a single post context.
Rank #4
- 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
- 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
- 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
- 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
- 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
Add editor behavior in WordPress 6.7 and later
Server registration is enough when the source only needs to affect rendered HTML. WordPress 6.7 adds registerBlockBindingsSource() in the @wordpress/blocks package for sources that need editor-side behavior.
import { registerBlockBindingsSource } from '@wordpress/blocks';
registerBlockBindingsSource( {
name: 'my-plugin/product-rating',
usesContext: [ 'postId' ],
getValues( { context, bindings } ) {
return {};
},
setValues( { dispatch, bindings } ) {
// Persist edits when the source is editable.
},
canUserEditValue() {
return false;
},
} );
getValues
getValues retrieves values for the editor. Its arguments include the requested context and the block’s bindings. Return the values that the editor should display for the bound attributes.
setValues
setValues persists edits when the source supports editing. Implement it only when there is a real write path for the underlying data, such as a REST-exposed meta field or another save mechanism. Reading a value in the editor does not automatically make it writable.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →canUserEditValue
canUserEditValue controls whether the current user may edit a bound value. Return an appropriate permission result for your source. A read-only source should explicitly deny editing, as the example does, rather than presenting controls that cannot save successfully.
When PHP and JavaScript both register the same source, their name and PHP source identifier must match exactly: my-plugin/product-rating is different from my-plugin/product_rating or a differently capitalized name.
Best Value
- 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
- 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
- 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
- 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
- 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
Read-only versus editable bindings
Decide the editing model before building the source. A server-only, read-only binding has the smallest implementation surface: PHP resolves the value and the editor can retain the fallback. This is suitable for calculated ratings, external records, or data that authors should not change in the block.
An editable binding needs three additional decisions:
- Where the edited value is persisted.
- How the editor obtains the current value.
- Which users are permitted to change it.
Those decisions belong in the JavaScript callbacks and the source’s permission checks. Do not treat a successful display as proof that saving works; retrieval and persistence are separate operations.
A complete implementation workflow
- Check the WordPress version. Use WordPress 6.5 or newer for the API. Use 6.7 or newer if the editor must register, read, or edit the source in JavaScript.
- Choose a compatible attribute. Confirm that the target block and attribute appear in the compatibility list for the release you support.
- Look for a built-in source. Use post meta, post data, term data, or pattern overrides when one already models your value.
- Prepare metadata if needed. Register post meta with
show_in_rest => trueand use a non-protected key. - Register custom PHP on
init. Use a lowercase namespaced identifier and declare only the context keys the callback needs. - Write the callback. Validate arguments, read context safely, and return the value format expected by the bound attribute.
- Add
metadata.bindings. Map the compatible attribute to the exact source name and pass any required values underargs. - Keep fallback content. Store useful ordinary block content so a missing value degrades cleanly.
- Add JavaScript registration only when necessary. Implement
getValues,setValues, andcanUserEditValuefor editor behavior and permissions. - Test both contexts. Check a post with a value, a post without one, and an editor session with a user who cannot edit the source.
Troubleshoot a binding that does not work
The value never changes from the fallback
- Verify the site runs WordPress 6.5 or later.
- Confirm the attribute is one of the supported attributes for that block.
- Compare the markup’s
sourcestring with the registered identifier character for character. - Check that registration runs on
init. - Inspect the callback’s key in
$source_argsand confirm that it is not empty. - For post meta, verify REST exposure and make sure the key does not begin with an underscore.
The callback cannot identify the current post
Declare postId in PHP’s uses_context and, when using the editor source, in JavaScript’s usesContext. Read the PHP value from the block instance context rather than assuming a global post ID.
The editor displays a value but cannot save it
Displaying data through getValues does not persist changes. Add a real setValues implementation and ensure the source’s canUserEditValue result permits the current user. If the source is intentionally read-only, keep editing disabled and retain a meaningful fallback.
A source works on one block but not another
Bindings are attribute-specific. A source that supplies paragraph content cannot be assumed to supply an unsupported attribute on another block. Check the compatibility table for each block and map only the listed attributes.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Design practices that prevent fragile bindings
- Use stable names. Treat the namespaced source identifier as an API contract because serialized block markup stores it.
- Validate arguments. Return a deliberate empty result when a required argument is missing instead of querying with an empty key.
- Preserve fallbacks. Fallback text, URLs, or other ordinary attributes make posts usable when data is absent.
- Separate reading from writing. A value can be rendered without being editable; implement persistence only when the data model and permissions support it.
- Request minimal context. Declare
postIdorpostTypeonly when the callback needs it. - Plan for release changes. Compatibility can expand as WordPress develops, so verify the target release rather than relying on an older list.
What the API changes in a site’s architecture
Block Bindings lets content remain in normal block markup while the value is supplied by a data layer at render time. That is useful when the layout belongs to the editor but the data belongs to post meta, a plugin, or another contextual source. The block still has recognizable attributes and fallback content, while the source owns retrieval and, optionally, persistence.
The practical boundary is clear: compatible attributes define where a value may be injected; PHP registration defines how the server obtains it; JavaScript registration defines how the editor understands and edits it. Keeping those responsibilities separate makes it easier to choose the smallest implementation that satisfies the site’s requirements.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

