嗨,我正在使用 Drupal 开发一个新站点,出于某种原因,我想在 Drupal 呈现的输入搜索字段之前添加一个跨度或标签(我更喜欢 <span>)。
有没有办法实现它?我不太乐意修改核心文件。
任何帮助,将不胜感激。
Drupal 版本:7
嗨,我正在使用 Drupal 开发一个新站点,出于某种原因,我想在 Drupal 呈现的输入搜索字段之前添加一个跨度或标签(我更喜欢 <span>)。
有没有办法实现它?我不太乐意修改核心文件。
任何帮助,将不胜感激。
Drupal 版本:7
您通常使用预处理功能来实现这一点
您可以在主题文件夹中使用此类功能。假设您的主题称为“示例”
// template_preprocess(&$variables, $hook),替换模板 //用你的主题名称 函数 example_preprocess(&$variables, $hook) { dsm($钩子); // 您需要开发模块才能使用 dsm()... } // 这应该输出页面上使用的钩子列表, //寻找search_form或类似的......然后你可以做 函数 example_preprocess(&$variables, $hook) { if($hook == 'search_form') dsm($变量); }
查看变量列表以识别要编辑的内容,那么这只是在您的函数中编辑该内容的问题。
如果你做一些研究,你应该找到很多例子!
您可以使用 hook_form_BASE_FORM_ID_alter() 钩子将您的 HTML 添加到现有标记中,
/**
* Implements hook_form_BASE_FORM_ID_alter();
*/
function <MODULE_NAME>_search_block_form_alter(&$form, &$form_state, $form_id) {
//Reffer prefix from the api to add <span> or <label>
// https://api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7#prefix
// Reffer prefix from the api to add </span> or </label>
//https://api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7#suffix
}