获得wordpress标题的一部分

时间:2015-04-18 21:48:12

标签: php wordpress

我的wp帖子标题目前看起来像这样:

哈姆雷特(William Shakespeare饰演)
罗密欧与朱丽叶(由威廉·莎士比亚拍摄)
仲夏夜之梦(由威廉莎士比亚拍摄)

我正在使用此代码:

<?php
    echo strtolower(str_replace(' ', '', get_the_title()));
?>

获取每个标题,但我只需要标题的第一部分而没有括号内的文字。

哈姆雷特
罗密欧与朱丽叶 仲夏夜之梦 等。

如何修改代码,使其只得到标题的第一部分而不用括号之间的内容?

1 个答案:

答案 0 :(得分:0)

  1. 循环遍历字符串中的每个字符,将它们添加到辅助变量中。如果你点击(然后停止。

    $string = 'Romeo and Juliet (by William Shakespeare)';
    $result = '';
    for ($i = 0, $l = strlen($string) - 1; $i < $l; $i++) {
        if ($string[$i] === '(') {
            break;
        }
        $result .= $string[$i];
    }
    $string = trim($result);
    
  2. 找到第一个括号,然后在此之前删除文本。

    $string = 'Romeo and Juliet (by William Shakespeare)';
    $first  = strpos($string, '(');
    if ($first !== false) {
        $string = substr($string, 0, $first);
    }
    $string = trim($string);
    
  3. 将字符串拆分为第一个(。然后使用第一部分。

    $string = 'Romeo and Juliet (by William Shakespeare)';
    $parts  = explode('(', $string, 2);
    $string = trim(array_shift($parts));
    
  4. 使用正则表达式:

    $string = 'Romeo and Juliet (by William Shakespeare)';
    preg_match('/[^(]+/', $string, $result);
    $string = trim(array_shift($result));
    
  5. 还有奖金!如果你不止一次这样做,那么像这样的函数应该可以解决问题。你应该重命名它。

    function awesomeness($string) {
        $paren = strpos($string, '(');
        if ($paren !== false) {
            $string = substr($string, 0, $paren);
            $string = trim($string);
        }
        return $string;
    }