<?php
$_GET['sortBy'] = 'B';
function get_permalink() { return 'someurl'; }
function get_terms($array) { return ['foo', 'bar', 'öle', 'can']; }
function esc_html($string) { return htmlspecialchars($string, ENT_QUOTES); }
function alpha_pagination() {
$chars = array_fill_keys(range('A', 'Z'), false);
foreach (get_terms(['taxonomy' => 'unknown', 'hide_empty' => true]) as $tax) {
$chars[mb_strtoupper(mb_substr($tax, 0, 1))] = true;
}
ksort($chars);
foreach ($chars as $char => $hasTerms) {
printf(
'<%1$s class="button%2$s%3$s">%4$s</%1$s>' . "\n",
$hasTerms ? 'a' : 'span', // %1$s
($_GET['sortBy'] ?? '_') === $char ? ' selected' : '', // %2$s
$hasTerms ? '" href="' . get_permalink() . '?' . http_build_query(['sortby' => $char]) : ' disable', // %3$s
esc_html($char) // %4$s
);
}
}
alpha_pagination();
- Output for 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
- <span class="button disable">A</span>
<a class="button selected" href="someurl?sortby=B">B</a>
<a class="button" href="someurl?sortby=C">C</a>
<span class="button disable">D</span>
<span class="button disable">E</span>
<a class="button" href="someurl?sortby=F">F</a>
<span class="button disable">G</span>
<span class="button disable">H</span>
<span class="button disable">I</span>
<span class="button disable">J</span>
<span class="button disable">K</span>
<span class="button disable">L</span>
<span class="button disable">M</span>
<span class="button disable">N</span>
<span class="button disable">O</span>
<span class="button disable">P</span>
<span class="button disable">Q</span>
<span class="button disable">R</span>
<span class="button disable">S</span>
<span class="button disable">T</span>
<span class="button disable">U</span>
<span class="button disable">V</span>
<span class="button disable">W</span>
<span class="button disable">X</span>
<span class="button disable">Y</span>
<span class="button disable">Z</span>
<a class="button" href="someurl?sortby=%C3%96">Ö</a>
preferences:
49.24 ms | 404 KiB | 62 Q