🕌
カスタムフィールドのテキストの一部にリンクをつける(CFSの場合)
カスタムフィールドで出力した文章内の一部テキストにリンクをつけるという要望があったので、メモとして残します
CustomFeildSuiteで実装しましたが、他のACF等でも出来るとは思います
設定画面
設定イメージ
php
<?php
//文章
$contentsTextbox = CFS()->get('contents_textbox', 99);
//一部文字にリンクをつけるループ
$contentsTargets = CFS()->get('contents_targets', 99);
?>
<p class="contents__text">
<?php
if ($contentsTargets) {
foreach ($contentsTargets as $targets) {
$targetsItem = $targets['contents_target'];
if ($targetsItem) {
foreach ($targetsItem as $target) {
$targetText = $target['contents_target-text'];
$targetUrl = $target['contents_target-url'];
$targetBlankStr = 'target="_blank" rel="noopener noreferrer"';
if ($targetText && $targetUrl) {
$targetBlank = $target['contents_target-blank'];
if ($targetBlank) {
$preConvertText = str_replace($targetText, '<a href="' . esc_url($targetUrl) . '" ' . $targetBlankStr . '>' . $targetText . '</a>', $contentsATextbox);
} else {
$preConvertText = str_replace($targetText, '<a href="' . esc_url($targetUrl) . '">' . $targetText . '</a>', $contentsTextbox);
}
$contentsTextbox = $preConvertText;
}
}
}
}
echo $preConvertText;
}
?>
</p>
Discussion