Three functions answer three different questions, and mixing them up is a common source of confusing template behaviour.
What It Does
nxt_field_exists() asks whether the field is registered for this object at all. nxt_has_field() asks whether it also holds a value. nxt_is_field_empty() asks whether the value is empty.
Before You Start
- Nexter Extension is active.
- You know the field’s Field Name.
- You are editing a template or a plugin.
Pick the Right Check
- Debugging a template that returns nothing →
nxt_field_exists(). If it is false, the problem is the field name or the location rules, not the data.

- Deciding whether to render a section →
nxt_has_field().
- Testing the value itself →
nxt_is_field_empty(), which understands each type’s idea of empty.
- Never use
empty()on a raw value. It treats0as empty, and0is a real number.
Display the Value
The three, in the order you would reach for them:
<?php
// is it registered here at all?
if ( ! nxt_field_exists( 'price' ) ) {
// wrong field name, or the group does not apply to this post
}
// registered and holding a value?
if ( nxt_has_field( 'brochure' ) ) {
// render the download section
}
// type-aware emptiness
if ( ! nxt_is_field_empty( 'amenities' ) ) {
// render the list
}
Limitations
- All three respect conditional logic, so a field hidden by a condition reads as absent.
nxt_field_exists()is about registration, not storage. It can be true while no value is saved.
Troubleshooting
exists() is true but has_field() is false
The field is registered and simply has no value on this object. That is a content problem, not a code one.
exists() is false
Either the name is wrong, or no matching field group applies to this object. Check the Field Name in the builder and the group’s location rules.










