所以我需要的是关于如何将 wordpress 支持的网站上的所有标题转换为大写的查询或一些提示。
我现在拥有的是这样的:
AAAAA BBBBB CCCCC
我希望它是这样的:
Aaaaa Bbbbb Ccccc
我确实尝试过谷歌搜索和搜索,但未能完成这项任务,因此非常感谢任何帮助!
更新:
我需要更新数据库中的标题。只是要清楚。:)
所以我需要的是关于如何将 wordpress 支持的网站上的所有标题转换为大写的查询或一些提示。
我现在拥有的是这样的:
AAAAA BBBBB CCCCC
我希望它是这样的:
Aaaaa Bbbbb Ccccc
我确实尝试过谷歌搜索和搜索,但未能完成这项任务,因此非常感谢任何帮助!
更新:
我需要更新数据库中的标题。只是要清楚。:)
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 ;
从这里。
您可以通过运行轻松更新:
Update wp_posts
Set post_title = proper(post_title)
您可以将其保留在数据库中,并通过 css 强制标题以大写字母显示:
h2 {
text-transform:capitalize;
}
你能尝试包装wordpresses 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()函数,我不完全确定它是否能够编辑标题,不幸的是我不必运行测试。
你们有什么感想?
只需单独使用 ucwords( $title ) - 但要非常仔细地检查您的用例 - 首字母缩略词最终不会像您的用户所期望的那样显示。
“TLAs 初学者指南”将变为“Tlas 初学者指南”
作为记录,上面引用的 MySQL 函数在最后一个字符单独存在时失败,例如,
Public John q
如果您不需要填充,有一个简单的解决方法:
trim(proper(concat(myfield, ' ')))