3.5의 새 미디어 관리자에 대한 트리거 새로 고침


23

3.5의 새로운 미디어 대화에서 미디어 라이브러리를 '새로 고침'하는 방법을 알아 내려고합니다. 이는 (내가 확인 작업 (미디어 대화 상자에서 탭 / iframe이 콤보를 통해) 워드 프레스 라이브러리에 외부 이미지 라이브러리에서 이미지를 추가 해요,하지만 난 새로 추가 된 이미지를 표시하기 위해 대화를 닫고 다시 할 필요가 있다 라이브러리에 성공적으로 추가되었습니다).

나는 방법 wp.media.editor.open()wp.media.editor.close()방법이 있지만 소스에서 sort()또는 refresh()(또는 무엇이든) 찾을 수는 없습니다 . 사실, 소스 코드는 매우 강렬 console.log하며 backbone.js에 큰 도움이되지 않습니다. 어떤 아이디어?


3
갤러리 "New Media Manager : The Great Unknown" 에 대한 질문이 하나 더 있습니다. 리듬에 따라 WP 3.7에 대한 전체 문서와 후크가 필요합니다 ... 모든 공감대는 배고픈 커뮤니티를 나타냅니다.
brasofilo

refresh () 함수 대신 wp.media.editor.close () 및 wp.media.editor.open () 함수의 조합을 사용하여 원하는 출력을 얻을 수 있습니다.
Vinod Dalvi

예를 들어 Featured-image-picker에는 wp-includes / js / media-views.js 라인 3644에 미디어 라이브러리의로드 여부에 대한 스위치가 있습니다. 참조하는 것처럼 보이지만 wp.media.featuredImage.frame().views.get('.media-frame-content')[0].views.get("")[3].collection.length길이를 0으로 설정해도 아무런 효과가 없습니다.
NoBugs

답변:


7

WP 코어에서 볼 수 있듯이 프레임 내용을 새로 고치는 올바른 방법은 다음과 같습니다.

if(wp.media.frame.content.get()!==null){
   wp.media.frame.content.get().collection.props.set({ignore: (+ new Date())});
   wp.media.frame.content.get().options.selection.reset();
}else{
   wp.media.frame.library.props.set({ignore: (+ new Date())});
}

컨텐츠가 사용 가능한지 항상 확인해야합니다. 그렇지 않으면 라이브러리를 새로 고치십시오.

건배!


WP 코어에서 이것은 어디에 있습니까?
NoBugs

이것이 여전히 옳습니까? wp.media.featuredImage.frame().options.selection.reset존재하는 것처럼 보이지만 wp.media.featuredImage.frame().collection예를 들어 없습니다 .
NoBugs

4

며칠 동안 나에게 데려 갔지만 마침내 이것을 알아 내기에 충분한 것들을 파헤 쳤습니다.

wp.media.editor.get(wpActiveEditor).views._views[".media-frame-content"][0].views._views[""][1].collection.props.set({ignore:(+(new Date()))})

더 쉬운 방법이 있어야하지만 그 동안 저에게 효과적입니다!


1
그럼에도 불구하고 너무 직관적 인 것 같습니다 :), 이것은 작동합니다! 고맙습니다!!!
Andrej

3
방금 "공식적인"방법을 찾았습니다. wp.media.frame.content.get('gallery').collection.props.set({ignore: (+ new Date())});이 경우 gallery탭을 새로 고 칩니다.
Jermim bilal

2
두 명령은 트리거를 새로 고침을 수행하는 동안, 그 후에 당신은 더 이상 모달 :( 필요성이 또 다른 해결책 이미지를 추가 할 수 있습니다
벤자민 Intal

이것은 이상적인 솔루션과는 거리가 멀지 만 media-frame-content키가 1에서 2로 변경 되었음을 주목할 가치가 있습니다 .wp.media.editor.get(wpActiveEditor).views._views[".media-frame-content"][0].views._views[""][2].collection.props.set({ignore:(+(new Date()))})
Ian

위의 이유로이 질문의 다른 곳에 게시 된보다 일반적인 버전을 사용하는 것이 좋습니다.wp.media.frame.content.get().collection.props.set({ignore: (+ new Date())});
Ian

1

2019 년 업데이트. 업 로더를 깨뜨리지 않는 더 나은 솔루션을 찾았습니다.

wp.media.frame.on('open', function() {
    if (wp.media.frame.content.get() !== null) {          
        // this forces a refresh of the content
        wp.media.frame.content.get().collection._requery(true);

        // optional: reset selection
        wp.media.frame.content.get().options.selection.reset();
    }
}, this);

0

당신이 찾고있는 것입니까?

wp.media.editor.remove('content');
wp.media.editor.add('content');

이것이 문제를 해결할 수있는 이유 를 설명하십시오 .
fuxia
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.