如何在 wordpress 中为 post_name 使用 preg_replace 函数?
How to use preg_replace function for post_name in wordpress?
$post_name = strtolower(preg_replace('/[^a-z0-9]+/i', '-', $post_title));
当我将 space 或 ) 放在 post 标题的末尾时,此代码会出错。
如何解决这个问题?
'/[^a-z0-9]+/i'
是什么意思?
谢谢。
好的..
试试这个:
$string = trim(strtolower("This is my article (part 1) "));
$string = preg_replace("/[^a-z0-9]+/i", "-", $string);
$string = preg_replace("/-$/", "", $string);
正如我在评论中所写,我认为问题出在 strtolower() 上,它试图将“-”变为小写,但它不起作用。
因此,首先将普通字母设为小写,然后进行 pregreplace 以生成 ) a -。
然后是第二个 pregreplace 以删除最后一个 - 如果它在那里。
前两行可能是:
$string = preg_replace("/[^a-z0-9]+/i", "-", trim(strtolower("This is my article (part 1) ")));
但是我想说清楚,代码的每一步
$post_name = strtolower(preg_replace('/[^a-z0-9]+/i', '-', $post_title));
当我将 space 或 ) 放在 post 标题的末尾时,此代码会出错。
如何解决这个问题?
'/[^a-z0-9]+/i'
是什么意思?
谢谢。
好的..
试试这个:
$string = trim(strtolower("This is my article (part 1) "));
$string = preg_replace("/[^a-z0-9]+/i", "-", $string);
$string = preg_replace("/-$/", "", $string);
正如我在评论中所写,我认为问题出在 strtolower() 上,它试图将“-”变为小写,但它不起作用。 因此,首先将普通字母设为小写,然后进行 pregreplace 以生成 ) a -。 然后是第二个 pregreplace 以删除最后一个 - 如果它在那里。
前两行可能是:
$string = preg_replace("/[^a-z0-9]+/i", "-", trim(strtolower("This is my article (part 1) ")));
但是我想说清楚,代码的每一步