Кажется, что ошибка в функции WordPress PHP, которая оставляет пробел перед заголовком страницы, сгенерированной <?php echo wp_title(''); ?>
<?php echo wp_title(''); ?>
Я прошел через документы и форумы WordPress по этой функции без везения.
Я использую его таким образом <body id="<?php echo wp_title(''); ?>">
Чтобы сгенерировать тег тела HTML с идентификатором заголовка страницы.
Так что мне нужно сделать это полоса белого пространства, так что тег body выглядит как <body id="mypage">
вместо этого <body id=" mypage">
Дополнительное пустое пространство убивает CSS, который я пытаюсь использовать, чтобы выделить пункты меню на активной странице. Когда я вручную добавляю правильный тег тела без пробела, мой CSS работает.
Итак, как бы я разделил пробел? Спасибо, Марк
Часть вторая Эпика
Джон, Хэп-свалка была хорошей идеей; он показывает пробел как два «20» пробела. Но все решения, которые разделяют ведущие пробелы и пробелы, не сделали.
И <?php ob_start(); $title = wp_title(''); ob_end_clean(); echo $title; ?>
<?php ob_start(); $title = wp_title(''); ob_end_clean(); echo $title; ?>
дает мне < body id ="">
и <?php ob_start(); $title = wp_title(''); echo $title; ?>
<?php ob_start(); $title = wp_title(''); echo $title; ?>
дает мне < body id =" mypage">
Головоломка. Корень проблемы заключается в том, что wp_title имеет необязательные заголовки заголовков страниц, которые выглядят как шевроны, которые должны быть удалены, когда опция является ложной, а они есть, но пустое пространство сбрасывается.
Есть ли ядерный вариант?
Да, попробовал их обоих; они все еще возвращают два ведущих пространства … arrgg
Стрите все пробелы с левого конца заголовка:
<?php echo ltrim(wp_title('')); ?>
Стрите все пробелы с обоих концов:
<?php echo trim(wp_title('')); ?>
Удалите все пробелы из левого конца заголовка:
<?php echo ltrim(wp_title(''), ' '); ?>
Удалите первое пространство, даже если это не первый символ:
<?php echo str_replace(' ', '', wp_title(''), 1); ?>
Сбросьте только одно пространство (а не новую строку, а не вкладку) в начале:
<?php echo preg_replace('/^ /', '', wp_title('')); ?>
Разделите первый символ, что бы это ни было:
<?php echo substr(wp_title(''), 1); ?>
Из документации WordPress по wp_title
, похоже, что wp_title
отображает сам заголовок, если вы не передадите false
для второго параметра, и в этом случае он вернет его. Поэтому постарайтесь:
<?php echo trim(wp_title('', false)); ?>
ltrim()
ltrim($str)
Просто бросьте несколько разновидностей здесь: обрезать
<body id="<?=trim(wp_title('', false));?>">
Спасибо за эту информацию! Я был в той же лодке, что мне нужно было создавать идентификаторы страниц для целей CSS, основанные на названии страницы, и вышеупомянутое решение работало красиво.
У меня возникло дополнительное препятствие в том, что на некоторых страницах есть заголовки со встроенными пространствами, поэтому я закончил эту кодировку:
<?php echo str_replace(' ','-',trim(wp_title('',false))); ?>
добавьте это в свои функции.
add_filter('wp_title', create_function('$a, $b','return str_replace(" $b ","",$a);'), 10, 2);
должен работать как шарм