1

I created a custom meta text field for adding a body class to a specific page. I want to limit the text to only alpha characters.

Also, I am using https://github.com/webdevstudios/Custom-Metaboxes-and-Fields-for-WordPress to create the meta box fields.

The field works, but I can enter any characters; eg, {),;. That won't work for a body class.

Thanks

3
  • 2
    Use ctype_alnum php.net/manual/en/function.ctype-alnum.php. It will check for only alpha numeric; and return true or false.
    – josh
    May 12, 2015 at 16:19
  • Thanks. I'll do some research on how and see if this works. May 14, 2015 at 16:39
  • If you post some code on where you want to place this check; I'll see if I can help. Basically; you want to take the variable containing the text you want to check; and pass it through the ctype_alnum function. if(ctype_alnum($data)===true) {echo 'success'} else {echo 'try again'}
    – josh
    May 14, 2015 at 18:13

1 Answer 1

1

I finally figured this out. The Custom Meta Boxes and Fields plugin has a sanitize setting where you can add your own sanitize function or use one of the default wordpress sanitize functions. In my case, Wordpress already has a sanitize function that does exactly what I wanted. See the code below, specifically the line "'sanitization_cb' => 'sanitize_html_class',"

            array(
            'name' => __( 'Custom Body Class', 'cmb' ),
            'id'   => $prefix . 'wnd_bodyclass',
            'type' => 'text_medium',
            'sanitization_cb' => 'sanitize_html_class', // custom sanitization callback. see this page for details: https://codex.wordpress.org/Function_Reference/sanitize_text_field
        ),
            array(
            'name' => __( 'Custom Post Class', 'cmb' ),
            'id'   => $prefix . 'wnd_postclass',
            'type' => 'text_medium',
        ),

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.