2012-03-05 2 views
1

(일괄 검색 및 대체 텍스트)의 이름을 변경하고,이 지침은 당신이하고 싶은 첫번째 일은이 _S 디렉토리를 복사입니다자동 _s 테마 난 그냥 <a href="https://github.com/Automattic/_s" rel="nofollow">_s wordpress theme</a> 사용하기 시작

말하고에 이름을 변경 다른 것. 말하자면, 메가 트 리움. 그런 다음 을 수행하여 모든 템플릿의 이름을 찾아서 바꾸십시오.

  1. _s을 검색하여 텍스트 도메인을 캡처하십시오. 모든 함수 이름을 캡처 할 _s_에 대한
  2. 검색
  3. 의견에 모든 발생을 대체 할 그 전에 공간 _s에 대한
  4. 검색합니다. (당신은 테마 이름의 대문자 버전이 대체 것입니다.)

또는 ... 그래서 나는이 시도

Search for:'_s' Replace with:'megatherium' 
Search for:_s_ Replace with:megatherium_ 
Search for: _s Replace with: Megatherium 

:

#!/bin/sh 
find /path/to/wp-content/themes/mytheme/ -type f | xargs perl -pi -e "s/'_s'/'mytheme'/g" 
find /path/to/wp-content/themes/mytheme/ -type f | xargs perl -pi -e "s/_s_/mytheme_/g" 
find /path/to/wp-content/themes/mytheme/ -type f | xargs perl -pi -e "s/ _s/ mytheme/g" 

펄을 사용하여 인라인 검색을 수행/모든 파일에 대한 대체, 그러나 이것은 뭔가를 망쳐 놨고 내 wordpress를 보려고하면 500 오류를 반환합니다.

& 검색을 수행하는 더 좋은 방법은 파일 그룹의 텍스트를 바꾸는 것입니까? 하나는 내 PHP를 짖지 않을까요? 내가 find ./mytheme -name \*.php -type f -exec php -l '{}' \;를 사용할 때

편집

내가 OSX 라이온에서이 작업을 실행하는거야 ...

그것은 구문 오류가 어느 곳이 아니라는 것을 보여줍니다.

이 요청하고, 그것을 신선한 사본에 몇 번을 실행 한 후 편집 2

, 그것은 일하고있어. 여분의 눈은 텔레파시를 통해 물건을 고정하기위한 모조와 같습니다.

+1

"이 모든 것이 엉망이됩니다"- 구체적으로 무엇이 엉망입니까? – DVK

+1

구문 검사를 위해'find ./mytheme -name \ * .php -type f -exec php -l '{}'\;'이렇게하면 각 파일에 대해 한 번에 하나씩'php -l'이 실행됩니다 같은 명령에 매개 변수로 모든 파일 이름을 전달하는'xargs '와는 다릅니다. –

+0

고마워, @IlmariKaronen, 그게 훨씬 낫다.'xargs'를 사용해야했다. find ./mytheme -name \ *. php -type f | xargs -n 1 php -l' ('-n 1'이 빠졌습니다)하지만 꼭 할 필요가 없는데 왜 파이프를 사용해야합니까? – JKirchartz

답변

4

내가 제대로 질문을 읽으면, 모든 텍스트는 대체하려고하는 토큰입니다 중 하나

  1. 텍스트 _s 토큰, 또는
  2. _s_
로 시작하는 토큰

이므로 '_s'_s_setup()을 바꿔야합니다. get_s_substr()은 없어야합니다. "단어 경계"와 일치하는 어설 션 \b가 도움이 될 것입니다.

$ find /path/to/wp-content/themes/mytheme/ -type f | \ 
    xargs perl -pi -e "s/\\b_s\\b/mytheme/g" 


$ find /path/to/wp-content/themes/mytheme/ -type f | \ 
    xargs perl -pi -e "s/\\b_s_/mytheme_/g" 

당신이 원하는 곳에 더 가까이 다가 갈 수 있습니다.