You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP字符串添加自定义类:Geodirectory类名冗余问题求助

解决GeoDirectory输入框自定义类名的异常问题

看起来你在给GeoDirectory输入框生成自定义类名时,遇到了HTML属性解析的bug——生成的代码里意外把Visa当成了游离的HTML属性,而你只想要American Express作为类名对吧?我来帮你梳理下可能的原因和解决办法:

  • 先排查类名的数据源问题
    首先确认你用来提取类名的输入框名称字段,是不是本身就包含了American Express Visa这样的内容?如果是直接把这个完整字符串塞进class属性里,浏览器会把空格后的Visa解析成另一个独立属性,就会出现<class="American Express" Visa>这种错误格式。你需要先对数据源做处理,只保留需要的部分。

  • 修改类名生成的代码逻辑
    假设你是通过GeoDirectory的钩子(比如geodir_custom_field_output)动态生成类名,那你需要在代码里对字符串做过滤或截取。举个实际的PHP代码示例:

    // 假设$field_label是获取到的输入框名称,比如"American Express Visa"
    // 方法1:直接移除末尾的" Visa"
    $target_class = str_replace(' Visa', '', $field_label);
    // 方法2:如果是固定取前两个单词组成类名
    $name_parts = explode(' ', $field_label, 2);
    $target_class = $name_parts[0] . ' ' . $name_parts[1];
    
    // 最后输出到HTML时记得转义属性值
    echo '<input type="text" class="' . esc_attr($target_class) . '" ... />';
    

    核心是确保class属性的值是被引号完整包裹的单一字符串,避免浏览器把多余内容解析成额外属性。

  • 检查是否有重复的类名处理逻辑
    有时候可能是主题或其他插件里的代码,和你自己的逻辑重复处理了类名,导致Visa被错误追加到了属性外面。可以排查下相关的钩子函数,看看有没有重复添加类名的情况。

  • 试试GeoDirectory内置的自定义类选项
    部分GeoDirectory字段类型支持在后台直接设置自定义类名,你可以进入字段编辑页面,找找有没有“CSS类”这类输入项,直接在这里填写American Express,这种方式比动态生成更稳妥,也不容易出错。

内容的提问来源于stack exchange,提问作者David Weinstein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:23:59