如何使 Titan Framework 文本字段成为必填项

How to make Titan Framework text field required

我将 Titan Framework 与我编写的自定义插件一起使用。有一个带有选项卡的设置页面,上面有一个文本字段:

array(
    'name'    => 'Slug',
    'id'      => 'my_slug',
    'type'    => 'text',
    'default' => 'my-slug',
    'desc'    => 'The slug.',
),

此文本字段允许用户为插件的前端指定 slug UI。问题是用户可以将此字段清除为空,然后保存导致错误的设置。

我知道当使用这个设置选项时,我可以在 PHP 代码中捕获这个条件。我也知道这可以使用 jQuery 来强制指定一个值来完成,但似乎应该有一个最佳实践解决方案。

谁能告诉我确保此字段具有值的正确方法?

用户绝对可以将其保存为空,是的,您可以使用 JS 来防止这种情况。但是因为没有 "pre save" 过滤器,解决这个问题的一种方法是对您提到的方法,向字段添加一个 placeholder 属性以在空时给出一个值的错觉(这只是为了更好的用户体验)。

array(
    'name'    => 'Slug',
    'id'      => 'my_slug',
    'type'    => 'text',
    'default' => 'my-slug',
    'desc'    => 'The slug.',
    'placeholder' => 'post',
),

然后在获取值时检查empty

$slug = $titan->getOption( 'my_slug' );
if ( empty( $slug ) ) {
    $slug = 'post';
}