将wordpress驱动的网站中的所有标题变为“大写”案例

时间:2010-06-13 21:26:26

标签: php mysql wordpress capitalization

所以我需要的是一个查询或一些关于如何将wordpress驱动的网站上的所有标题变成大写情况的提示。

我现在拥有的是这样的东西:

AAAAA BBBBB CCCCC

我希望它是这样的:

Aaaaa Bbbbb Ccccc

我确实在谷歌搜索并在这里搜索,但是在这项任务中失败了所以非常感谢任何帮助!

更新:

我需要更新数据库中的标题。只是为了清楚。 :)

5 个答案:

答案 0 :(得分:2)

MySQL中没有这方面的功能,但你可以创建一个这样的功能:

DROP FUNCTION IF EXISTS proper;
SET GLOBAL  log_bin_trust_function_creators=TRUE;
DELIMITER |
CREATE FUNCTION proper( str VARCHAR(128) )
RETURNS VARCHAR(128)
BEGIN
  DECLARE c CHAR(1);
  DECLARE s VARCHAR(128);
  DECLARE i INT DEFAULT 1;
  DECLARE BOOL INT DEFAULT 1;
  DECLARE punct CHAR(17) DEFAULT ' ()[]{},.-_!@;:?/';
  SET s = LCASE( str );
  WHILE i < LENGTH( str ) DO 
    BEGIN
      SET c = SUBSTRING( s, i, 1 );
      IF LOCATE( c, punct ) > 0 THEN
        SET BOOL = 1;
      ELSEIF BOOL=1 THEN 
        BEGIN
          IF c >= 'a' AND c <= 'z' THEN 
            BEGIN
              SET s = CONCAT(LEFT(s,i-1),UCASE(c),SUBSTRING(s,i+1));
              SET BOOL = 0;
            END;
          ELSEIF c >= '0' AND c <= '9' THEN
            SET BOOL = 0;
          END IF;
        END;
      END IF;
      SET i = i+1;
    END;
  END WHILE;
  RETURN s;
END;
|
DELIMITER ;

来自here

您可以通过运行来轻松更新:

Update wp_posts
Set post_title = proper(post_title)

答案 1 :(得分:1)

您可以将其保留在数据库中,并通过css强制标题以大写字母显示:

h2 {
  text-transform:capitalize;
}

答案 2 :(得分:0)

您可以尝试使用the_title();ucwordsstrtolower

包装字词update_post_meta()功能
<?php echo ucwords(strtolower(the_title(null, null, false))); ?>

从我可以收集到的内容中,使用标题值使用strtolower将其转换为小写,然后使用ucwords来大写每个单词。

我自己没有尝试过,所以我不知道它有效,但这就是我试试的方法。

希望这有帮助

编辑:对了我看过我的一个旧文件,在你的functions.php中你可以定义一个挂钩到save_post动作的函数。使用post变量你应该能够调整那些数据,但是就像其他人说的那样,你必须要小心,因为它不能产生预期的效果。

add_action('save_post', 'save_postdata');
function save_postdata($post_id) {
    //edit code here
    update_post_meta($post_id, 'title', $title);
}

我正在使用{{3}}功能,我不完全确定它是否具有编辑标题的能力,我不一定能够运行测试。

你们有什么想法?

答案 3 :(得分:0)

只需自己使用ucwords($ title) - 但请仔细检查您的使用案例 - 首字母缩略词最终不会像您的用户所期望的那样显示。

“TLAs初学者指南”将成为“Tlas初学者指南”

答案 4 :(得分:0)

对于记录,上面引用的MySQL函数在最后一个字符独立时失败,例如,

Public John q

如果您不需要填充,有一个简单的解决方法:

trim(proper(concat(myfield, '    ')))