0

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

  • 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 '15 at 16:19
  • Thanks. I'll do some research on how and see if this works. – user3257949 May 14 '15 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 '15 at 18:13
0

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, privacy policy and cookie policy

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