我在 Wordpress 上有一个网站。我的子页面上显示了一个菜单。一切正常。我还有一个格式的索引 A、B、C 等。在我的 css 中,一切都是大写的。它适用于 Chrome、Firefox,但不适用于 Safari,例如,我的菜单中的选项是小写的。所以我需要自己在大写中输入我的页面标题......这不是我猜的最佳解决方案......所以我想添加一个 php 函数来大写我的 post_title 而不是使用 CSS 来做到这一点。我知道我可以使用“strtoupper”功能,但我不知道在这种情况下该使用谁:
echo '<select name="" onchange="location = this.options[this.selectedIndex].value;">';
这是构建菜单的完整 php 代码:
<div class="styled-select">
<?php
if(!$post->post_parent){
$children = get_pages(array(
'child_of' => $post->ID,
'post_type' => 'page',
'post_status' => 'publish',
'sort_order' => 'ASC',
'sort_column' => 'post_title',
));
}else{
$children = get_pages(array(
'child_of' => $post->post_parent,
'post_type' => 'page',
'post_status' => 'publish',
'sort_order' => 'ASC',
'sort_column' => 'post_title',
));
}
if ($children) {
echo '<select name="" onchange="location = this.options[this.selectedIndex].value;">';
echo '<option>'. 'A - Z' .'</option>';
function getInitials($name){
//split name using spaces
$words=explode(" ",$name);
$inits='';
//loop through array extracting initial letters
foreach($words as $word){
$inits = strtoupper(substr($word,0,1));
break;
}
return $inits;
}
$currval = "";
foreach($children as $child){
//print_r($child);
$permalink = get_permalink($child->ID);
$initial = getInitials($child->post_title);
if($initial!='' && $currval != $initial ) {
$currval = $initial;
echo '<optgroup label="'.$initial.'""></optgroup>';
}
echo '<option value="'.$permalink.'">'.$child->post_title.'</option>';
}
echo '</select>';
} ?>
<!-- FIN MENU DEROULANT A-Z -->
</div>
这是一个jsfiddle:http: //jsfiddle.net/3LZEt/
如果有人可以帮助我!多谢。