【问题标题】:Formatting Phone Numbers in WP Custom Post Type在 WP 自定义帖子类型中格式化电话号码
【发布时间】:2014-12-20 11:37:47
【问题描述】:

我有一个名为“联系人”的自定义帖子类型和一个名为“phone_number”的元框输入。

输入这些电话号码的方式有很多种:即。 1234567890 / 123-456-7890 / (123)456-7890 / 1-123-456-7890 / 等

我想添加一个函数,删除所有空格、括号和破折号,并生成 10 位字符串或 11 位字符串(对于开头带有 +1 国家代码的长途号码)。

一旦我将数字简化为 10 位或 11 位数字字符串,我希望它相应地格式化: 10 位数字 - 123-456-7890 11 位数字 - 1-123-456-7890

我发现另一个线程提到使用这个:

function format_phone($phone) {
$phone = preg_replace("/[^0-9]/", "", $phone);

if(strlen($phone) == 7)
    return preg_replace("/([0-9]{3})([0-9]{4})/", "$1-$2", $phone);
elseif(strlen($phone) == 10)
    return preg_replace("/([0-9]{3})([0-9]{3})([0-9]{4})/", "($1) $2-$3", $phone);
else
    return $phone;
}

但我不知道在哪里添加它,或者需要更改哪些内容才能满足我的需求。

【问题讨论】:

  • 在这种情况下“WP”是 WordPress,还是 Windows Phone?

标签: php string-formatting phone-number


【解决方案1】:
function format_phone($phone) {
$phone = preg_replace("/[^0-9]/", "", $phone);

if(strlen($phone) == 10)
    return preg_replace("/([0-9]{3})([0-9]{3})([0-9]{4})/", "$1-$2-$3", $phone);
else if(strlen($phone) == 11)
    return preg_replace("/([0-9]{1})([0-9]{3})([0-9]{3})([0-9]{4})/", "$1-$2-$3-$4", $phone);
else return false;

}

【讨论】:

  • 我会把这个放在哪里?在我的自定义帖子类型函数所在的模板文件或函数文件中?这是我目前在模板文件中的内容: ID, 'phone_number', true) ) { ?> Phone Number:
【解决方案2】:

要替换任何不是数字的内容,您可以使用:

$phone = preg_replace("/[^\d]*/","", $phone);

但很抱歉,我无法帮助您使用 WordPress。我猜帖子提交有一个钩子?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 2018-06-24
    • 1970-01-01
    相关资源
    最近更新 更多