Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取wordpress标题的一部分_Php_Wordpress - Fatal编程技术网

Php 获取wordpress标题的一部分

Php 获取wordpress标题的一部分,php,wordpress,Php,Wordpress,我的wp帖子标题目前如下所示: 哈姆雷特(威廉·莎士比亚) 罗密欧与朱丽叶(威廉·莎士比亚著) 仲夏夜之梦(威廉·莎士比亚著) 等等 我正在使用以下代码: <?php echo strtolower(str_replace(' ', '', get_the_title())); ?> 要获得每个标题,但我只需要标题的第一部分,不需要括号中的文本 i、 e 哈姆雷特 罗密欧与朱丽叶 仲夏夜之梦 等等 如何修改代码,使其只获取标题的第一部分,而不包含括号中的内容 循环字符串

我的wp帖子标题目前如下所示:

哈姆雷特(威廉·莎士比亚)
罗密欧与朱丽叶(威廉·莎士比亚著)
仲夏夜之梦(威廉·莎士比亚著)
等等

我正在使用以下代码:

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

要获得每个标题,但我只需要标题的第一部分,不需要括号中的文本

i、 e

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

如何修改代码,使其只获取标题的第一部分,而不包含括号中的内容

  • 循环字符串中的每个字符,将它们添加到辅助变量。如果您点击了
    ),则停止

    $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);
    
  • 用第一个
    )将字符串一分为二。然后使用第一部分

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

    $string = 'Romeo and Juliet (by William Shakespeare)';
    preg_match('/[^(]+/', $string, $result);
    $string = trim(array_shift($result));
    
  • 还有一个好处!如果你打算不止一次这样做,那么像这样的函数应该可以做到。你可能应该重命名它

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

  • array\u shift(explode(“(”,get\u title())
    出于某种原因,我更喜欢第三个,这就是我使用的,效果很好!多少啤酒,我应该送到哪里?
    function awesomeness($string) {
        $paren = strpos($string, '(');
        if ($paren !== false) {
            $string = substr($string, 0, $paren);
            $string = trim($string);
        }
        return $string;
    }