カスタムフィールドに入力した電話番号を表示と発信リンクに使う

やりたいこと

  • カスタムフィールドで電話番号を入力してもらうのだが、ハイフンなしとかありとか、入力する人が面倒にならないようにしたい。
  • その電話番号はそのページで出力するのだが、スマホなど、タップしたら発信するように<a href="tel:〜〜">も付けたい。発信する方はハイフンなしにしなきゃいけない。

解決方法

以下、カスタムフィールドのkeyとして"tel"を使っている前提です。

<?php $tel_num = get_post_meta( get_the_ID(), 'tel', 'true' );
$tel_link = str_replace(array('-', 'ー', '−', '―', '‐','(',')','(',')',' ',' '),'',$tel_num);?>
<p>電話番号:<a href="tel:<?php echo esc_html($tel_link);?>"><?php echo esc_html($tel_num);?></a></p>

ハイフンの全角パターン、あと市内局番を括弧で囲まれてしまった場合、スペースが紛れ込んだ場合に備えてそれらをすべて削除するコードにしています。