代码之家  ›  专栏  ›  技术社区  ›  Gavrisimo

将WordPress支持的站点中的所有标题转换为“大写”大小写

  •  1
  • Gavrisimo  · 技术社区  · 15 年前

    所以我需要的是一个关于如何将WordPress支持的网站上的所有标题都转换成大写形式的查询或提示。

    我现在的情况是这样的:

    AAAAA BBBBB CCCCC公司

    我希望它是这样的:

    AAAAA BBBBB CCCCC公司

    我确实尝试过谷歌搜索,但失败了,所以任何帮助都非常感谢!

    更新:

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

    5 回复  |  直到 15 年前
        1
  •  2
  •   brendan    15 年前

    在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)
    
        2
  •  1
  •   Michelle    15 年前

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

    h2 {
      text-transform:capitalize;
    }
    
        3
  •  0
  •   Cups    15 年前

    只需单独使用ucwords($title),但要仔细检查用例,缩略语最终不会像用户预期的那样显示出来。

    “TLA初学者指南”将成为“TLA初学者指南”

        4
  •  0
  •   studioromeo    15 年前

    你能试着包装写字板吗 the_title(); 函数与 ucwords strtolower

    <?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);
    }
    

    我正在使用 update_post_meta() 函数,我不完全确定是否有能力编辑标题,不幸的是,我没有能力运行测试。

    你们觉得怎么样?

        5
  •  0
  •   sth    15 年前

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

    Public John q
    

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

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