2009-07-09 30 views
5

Dường như có lỗi trong một hàm PHP Wordpress để lại khoảng trắng trước tiêu đề của trang được tạo bởi <?php echo wp_title(''); ?> Tôi đã thông qua các tài liệu và diễn đàn Wordpress trên hàm đó mà không có bất kỳ may mắn nào.Cắt không gian trắng hàng đầu bằng PHP?

Tôi đang sử dụng theo cách này <body id="<?php echo wp_title(''); ?>"> để tạo thẻ body HTML có id của tiêu đề trang.

Vì vậy, những gì tôi cần làm là dải không gian trắng, để thẻ cơ thể trông giống như <body id="mypage"> này thay vì <body id=" mypage">

Không gian trắng thêm này giết chết CSS Tôi đang cố gắng sử dụng để làm nổi bật các mục menu của trang đang hoạt động. Khi tôi thêm một thẻ body đúng cách mà không có khoảng trắng, CSS của tôi sẽ hoạt động.

Vậy làm cách nào để loại bỏ khoảng trắng? Cảm ơn, Mark


Phần thứ hai của Epic

John, Một bãi hex là một ý tưởng tốt; nó cho thấy không gian màu trắng là hai "20" không gian. Nhưng tất cả các giải pháp ngăn không gian hàng đầu và không gian màu trắng thì không.

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

mang lại cho tôi < body id ="">

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

mang lại cho tôi < body id =" mypage">

Puzzle. Gốc của vấn đề là wp_title có các ký tự đầu trang tiêu đề tùy chọn - trông giống như các chữ cái - được cho là bị bỏ khi tùy chọn là sai, và chúng có, nhưng không gian trắng bị đổ vào.

Có một lựa chọn hạt nhân?


Yup, đã thử cả hai trước đây; họ vẫn trở lại hai không gian hàng đầu ...arrgg

Trả lời

36
  1. Strip tất cả khoảng trắng từ đầu bên trái của tiêu đề:

    <?php echo ltrim(wp_title('')); ?> 
    
  2. Strip tất cả khoảng trắng từ hai đầu:

    <?php echo trim(wp_title('')); ?> 
    
  3. Strip tất cả các không gian từ đầu bên trái của tiêu đề:

    <?php echo ltrim(wp_title(''), ' '); ?> 
    
  4. Tháo không gian đầu tiên, ngay cả khi nó không phải là ký tự đầu tiên:

    <?php echo str_replace(' ', '', wp_title(''), 1); ?> 
    
  5. Strip chỉ là một không gian duy nhất (không xuống dòng, không phải tab) tại phần đầu:

    <?php echo preg_replace('/^ /', '', wp_title('')); ?> 
    
  6. Vuốt ký tự đầu tiên, bất kể ký tự nào:

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

Cập nhật

Từ Wordpress documentation on wp_title, dường như wp_title hiển thị tiêu đề riêng của mình trừ khi bạn vượt qua false cho tham số thứ hai, trong trường hợp này nó sẽ trả về nó. Vì vậy hãy thử:

<?php echo trim(wp_title('', false)); ?> 
+2

Bạn chắc chắn nhận được giải thưởng cho phạm vi và sự đa dạng, và tất cả họ đều nên làm việc. Nhưng một cái gì đó là wacky với chức năng Wordpress và tôi vẫn còn có khoảng trắng. Firebug cho thấy nó như là khoảng trắng, không phải bất kỳ loại ký tự nào. – markratledge

+0

Phần thứ hai của Epic được giải quyết vào câu hỏi ban đầu của tôi! – markratledge

+0

Đã thử cả hai trước đây; họ vẫn trả về hai không gian hàng đầu .... arrg. – markratledge

1

Chỉ cần để ném vào một số nhiều ở đây: trim

<body id="<?=trim(wp_title('', false));?>"> 
1

Cảm ơn thông tin này! Tôi đã ở trong cùng một chiếc thuyền trong đó tôi cần thiết để tạo ra các id trang cho các mục đích CSS dựa trên tiêu đề trang và giải pháp trên làm việc rất đẹp.

tôi đã kết thúc có một trở ngại thêm trong đó một số trang có tiêu đề với không gian nhúng, vì vậy tôi đã kết thúc mã hóa này:

<?php echo str_replace(' ','-',trim(wp_title('',false))); ?> 
0

thêm video này vào functions.php của bạn

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

nên làm việc như một sự quyến rũ

Các vấn đề liên quan