6

Wordpress PHP 函数中似乎存在一个错误,该错误在<?php echo wp_title(''); ?> 我通过该函数的 Wordpress 文档和论坛生成的页面标题前留下空白,但没有任何运气。

我以这种方式使用它<body id="<?php echo wp_title(''); ?>">来生成带有页面标题 id 的 HTML 正文标记。

所以我需要做的是去掉那个空白,让body标签看起来像这样<body id="mypage"> 而不是这样<body id=" mypage">

额外的空白会杀死我试图用来突出显示活动页面的菜单项的 CSS。当我手动添加没有空格的正确正文标签时,我的 CSS 工作。

那么我将如何去除空白呢?谢谢,马克


史诗的第二部分

约翰,十六进制转储是个好主意;它将空白显示为两个“20”空格。但是所有去除前导空格和空白的解决方案都没有。

和, <?php ob_start(); $title = wp_title(''); ob_end_clean(); echo $title; ?>

给我< body id ="">

<?php ob_start(); $title = wp_title(''); echo $title; ?>

给我< body id =" mypage">

谜。The root of the problem is that wp_title has optional page title leading characters - that look like chevrons - that are supposed to be dropped when the option is false, and they are, but white space gets dumped in.

有核选项吗?


是的,之前都试过了;他们仍然返回两个前导空格... arrgg

4

6 回答 6

38
  1. 去掉标题左端的所有空格:

    <?php echo ltrim(wp_title('')); ?>
    
  2. 从两端删除所有空格:

    <?php echo trim(wp_title('')); ?>
    
  3. 去掉标题左端的所有空格:

    <?php echo ltrim(wp_title(''), ' '); ?>
    
  4. 删除第一个空格,即使它不是第一个字符:

    <?php echo str_replace(' ', '', wp_title(''), 1); ?>
    
  5. 在开头只去掉一个空格(不是换行符,不是制表符):

    <?php echo preg_replace('/^ /', '', wp_title('')); ?>
    
  6. 去掉第一个字符,不管它是什么:

    <?php echo substr(wp_title(''), 1); ?>
    

更新

从上的 Wordpress文档中wp_title,除非您传递第二个参数,否则它似乎会wp_title显示标题本身false,在这种情况下它会返回它。所以试试:

<?php echo trim(wp_title('', false)); ?>
于 2009-07-09T01:04:15.770 回答
10

ltrim()

于 2009-07-09T01:04:08.717 回答
1
ltrim($str)
于 2009-07-09T01:04:19.297 回答
1

只是在这里添加一些变化:修剪

 <body id="<?=trim(wp_title('', false));?>">
于 2009-07-09T01:06:48.390 回答
1

感谢您提供此信息!我在同一条船上,因为我需要根据页面标题为 CSS 目的生成页面 id,并且上述解决方案效果很好。

我最终遇到了一个额外的障碍,因为某些页面的标题带有嵌入的空格,所以我最终编写了这个:

<?php echo str_replace(' ','-',trim(wp_title('',false))); ?>
于 2010-07-14T20:33:33.397 回答
0

将此添加到您的functions.php

add_filter('wp_title', create_function('$a, $b','return str_replace(" $b ","",$a);'), 10, 2);

应该像魅力一样工作

于 2010-11-06T15:28:37.953 回答