お世話になっております。
ショートコードを上書きするのは大変なので、[value]
をカスタマイズしたショートコードを別に作るのが良いと思います。
例えば以下のようにします。
①以下のコードをfunctions.phpに貼り付けます。
// 0点に対応したショートコード [myvalue]
add_shortcode('myvalue', 'my_rate_inner'); // 評価ボックスの中身
function my_rate_inner($atts, $content = null)
{
if (isset($atts[0])) {
$value = ($atts[0]);
$s = '<i class="fa fa-star"></i>';
$h = get_option('use_fontawesome4') ? '<i class="fa fa-star-half-o"></i>' : '<i class="fas fa-star-half-alt"></i>';
$n = get_option('use_fontawesome4') ? '<i class="fa fa-star-o"></i>' : '<i class="fas fa-star rate-star-empty"></i>';
if ($value == '5' || $value == '5.0') {
$star = $s . $s . $s . $s . $s . ' (5.0)';
} elseif ($value == '4.5') {
$star = $s . $s . $s . $s . $h . ' (4.5)';
} elseif ($value == '4' || $value == '4.0') {
$star = $s . $s . $s . $s . $n . ' (4.0)';
} elseif ($value == '3.5') {
$star = $s . $s . $s . $h . $n . ' (3.5)';
} elseif ($value == '3' || $value == '3.0') {
$star = $s . $s . $s . $n . $n . ' (3.0)';
} elseif ($value == '2.5') {
$star = $s . $s . $h . $n . $n . ' (2.5)';
} elseif ($value == '2' || $value == '2.0') {
$star = $s . $s . $n . $n . $n . ' (2.0)';
} elseif ($value == '1.5') {
$star = $s . $h . $n . $n . $n . ' (1.5)';
} elseif ($value == '0') {
// 0を追加
$star = $n . $n . $n . $n . $n . ' (0)';
} else {
$star = $s . $n . $n . $n . $n . ' (1.0)';
}
$endl = (isset($atts[1])) ? ' end-rate' : '';
if ($content) {
return '<div class="rateline' . $endl . '"><div class="rate-thing">' . $content . '</div><div class="rate-star dfont">' . $star . '</div></div>';
}
}
}
②ショートコードを使用するときに[rate title="テスト"][value 0]読みやすさ[/value][/rate]
ではなく[rate title="テスト"][myvalue 0]読みやすさ[/myvalue][/rate]
のようにします。
よろしくお願いします。
ご丁寧で迅速なご回答、誠にありがとうございます!
大変助かりました。
WordPressテーマSANGOの質問
レビューボックスで点数「0」を使いたい
お世話になります。
レビューボックスの点数は「1」〜「5」までになっていますが、「0」(グレーの星のみ5個)を表示させたいと考えています。
対処方法をご教示頂けないでしょうか。