2014-10-08 4 views
0

나는 몇 시간 동안 책을 읽었으며이를 수행하는 방법을 알 수 없습니다. 나는 필요한 모든 것의 예를 찾을 수 있습니다. 어떤 도움이나 방향을 주시면 감사하겠습니다. 나는이 모든 것들을이PHP에서 html을 바꾸는 방법

<div class="flex-video"> 

<div style="margin-top:-501px;margin-left:6px;"> 

을 변경해야 할 경우

은 내가 워드 프레스 사이트가 있습니다. 이를 달성하기 위해 single.php 파일에 추가 할 수있는 무언가가 있어야합니다.

+1

를 데이터베이스 방법을 원하지 않는 경우 – cmorrissey

+0

감사합니다, 나는 단지 나에게 의미있는 좋은 모범을 찾을 수 없었습니다! – Brett

답변

0

당신은 당신이 str_replace` http://php.net/manual/en/function.str-replace.php`를 찾고 있습니다

jQuery(document).ready(function(){ 
 
var cntnt = jQuery("body").html(); 
 
if(cntnt.indexOf('style="margin-top:-501px') > -1) 
 
    { 
 
var cntntreplaced = cntnt.replace(/<div style="margin-top:-501px;margin-left:6px;">/gi,'<div class="flex-video">'); 
 
$("body").replaceWith("<body>"+cntntreplaced+"</body>"); 
 
} 
 
});

+0

굉장했습니다! 이제는 왜 내 배경색을 삭제했는지 알아 내야 만 해. – Brett

+0

죄송합니다. 지금 실수로 편집 된 코드를 확인했습니다. – Aqib1604

+0

편집이 전혀 작동하지 않습니다. 나는 첫 번째 코드를보고 있지만 무엇이 잘못되었는지는 알 수 없다. – Brett

2

이 마크 업이 wp_posts 테이블 내부에 있다고 가정하면 single.php 사실을 왜 처리할까요? 큰 배치로 소스를 고칠 수 있습니다. 이 쿼리 실행

UPDATE 
    wp_posts 
SET 
    post_content = REPLACE(post_content, 'style="margin-top:-501px;margin-left:6px;"', 'class="flex-video"'); 
WHERE 
    post_content LIKE '%style="margin-top:-501px;margin-left:6px;"%' 

참고 WHERE 부분이 필요하지 않을 수 있습니다,하지만 당신은 게시물의 수가 많은 경우는 다치게하지 않도록, 쿼리, 훨씬 더 빨리 실행됩니다.

+0

그저 할 수 있으면 좋겠다. 내가 다른 솔루션을 필요로하는 이유에 대해 자세히 알아 보았습니다. 문제는 내가 모바일 버전에 대해 다른 테마를 사용하고 있고 원래 마크 업이 메인 사이트에서 동일하게 유지되어야하므로 게시물을 변경할 수 없다는 것입니다. 다행히도 그것은 의미가 있습니다. – Brett

+0

@Brett 메인 사이트의 스타일 시트에'.flex-video {margin-top : -501px; margin-left : 6px; }'... 그것들을 강요 할 필요가 있다면 두 CSS 속성 뒤에'! important'를 던질 수 있습니다. – sjagr

관련 문제