#wordpress #custom-fields
#wordpress #пользовательские поля
Вопрос:
Я создаю пользовательское сообщение, в котором есть несколько пользовательских полей. Когда значение, введенное для пользовательских полей, содержит одинарную кавычку, все после нее отсекается. Есть ли фильтр, который я могу использовать для экранирования кавычек, чтобы они считывались как часть строки?
У меня много пользовательских полей, но здесь в качестве примера кода, который я использую.
// prefix of meta keys, optional
// use underscore (_) at the beginning to make keys hidden, for example $prefix = '_rw_';
// you also can make prefix empty to disable it
$prefix = 'rw_';
$meta_boxes = array();
// first meta box
$meta_boxes[] = array(
'id' => 'entry_data', // meta box id, unique per meta box
'title' => 'Entry Data', // meta box title
'pages' => array('dictionary_entry'), // post types, accept custom post types as well, default is array('post'); optional
'context' => 'normal', // where the meta box appear: normal (default), advanced, side; optional
'priority' => 'high', // order of meta box: high (default), low; optional
'fields' => array( // list of meta fields
array(
'name' => 'Definition 1', // field name
'desc' => 'What does this mean?', // field description, optional
'id' => $prefix . 'definition1', // field id, i.e. the meta key
'type' => 'text', // text box
'std' => '', // default value, optional
'validate_func' => 'check_name' // validate function, created below, inside RW_Meta_Box_Validate class
),
array(
'name' => 'Example 1', // field name
'desc' => 'Use it in a sentence?', // field description, optional
'id' => $prefix . 'example1', // field id, i.e. the meta key
'type' => 'text', // text box
'std' => '', // default value, optional
'validate_func' => 'check_name' // validate function, created below, inside RW_Meta_Box_Validate class
),
)
);
Ответ №1:
Вы пробовали использовать htmlentities($value, ENT_QUOTES)
значение, считываемое из текстового поля?
Комментарии:
1. Это то, что я хотел бы сделать, но я не уверен, где это сделать. Мне нужно, чтобы эта функция применялась к введенному тексту (по мере его сохранения), потому что одинарные кавычки отсекают остальную часть строки.
2. поэтому вы, вероятно, захотите использовать в другом или другом месте, где вы читаете значение текстового поля и хотите что-то с ним сделать.
htmlentities
'validate_func'
3. Это устранило проблему для меня. Запустите его для данных поля перед сохранением во время
save_post
перехвата, и оно будет возвращаться, как и должно быть каждый раз.