안녕하세요. Kboard 잘 사용하고 있습니다.
저희가 운영하는 웹사이트는 rss를 통해 타 제휴업체에 컨텐츠를 제공하고 있는데요.
이 때 이미지 파일은 정상적으로 연동이 되고 있지만 영상파일은 연동이 안되고 있습니다.
이유를 살펴보니, 이미지의 경우 rss 상에서 <img> 태그로 잘 반영되고 있지만
kboard에서 영상을 업로드할 경우('미더어 추가'를 통해) <video> 태그가 아닌 [video] 형식으로 발행되는 것을 확인했습니다.
즉, 숏코드 형식으로 발행되고 있는 것 같은데요. 그러다보니 제휴업체에서 컨텐츠를 가져갈 때도 [video]를 그냥 문자그대로 연동해가고 있습니다.
rss 상에서만 [video]를 정상적인 <video> 태그로 변환할 수 있도록 하는 방법이 없을까요?
안녕하세요~^^
게시글 작성 시 아래와 같은 형태로
비디오 태그를 입력해보시겠어요?
<video controls="" src="주소"></video>
비디오 태그가 사라진다면
관리자->KBoard->대시보드에서 XSS공격 차단을 비활성화 후
작성해보세요.
고맙습니다.
안녕하세요.
말씀주신대로 글 작성시
<video width="840" height="1050" controls="" src="https://funnyissue.com/wp-content/uploads/2023/01/SerpentineHiddenComet.mp4" ></video>
아래와 같이 입력해봤습니다.
하지만 그랬더니 영상으로 나오지 않고 저 코드 그대로 글자만 출력 되고 있습니다ㅜ
xss공격 차단도 비활성화했습니다.
워드프레스 에디터를 사용하고 계시다면
글 작성 시 우상단 탭에 비주얼 | 텍스트 중
텍스트를 클릭하여
p 태그 내부에 들어있는지 확인 해보시고
p 태그를 삭제 후 video 태그만 남겨보시겠어요?
고맙습니다.
답변 감사합니다.
네 <p> 태그가 적용되지 않은 걸 확인했는데도 그냥 글자로만 나오고 있습니다.
제가 살펴보니 kboard를 사용하지 않더라도 일반적으로 워드프레스에서 classic editor를 사용할 경우 영상을 올리면 [video] 숏코드로 입력이 되더군요.
그런데 신기한 것은 rss에서는 [video] 숏코드가 <video> 태그 형식으로 정상적으로 변환돼서 발행되는 것을 확인했습니다.
즉, kboard 폴더에 있는 rss.php와는 달리 feed-rss2.php 파일에는 이부분을 변환해주는 것이 있는 것 같은데요.
feed-rss2.php 파일의 컨텐츠 부문 코드를 보니 아래와 같았습니다.
<?php if ( get_option( 'rss_use_excerpt' ) ) : ?>
<description><![CDATA[<?php the_excerpt_rss(); ?>]]></description>
<?php else : ?>
<description><![CDATA[<?php the_excerpt_rss(); ?>]]></description>
<?php $content = get_the_content_feed( 'rss2' ); ?>
<?php if ( strlen( $content ) > 0 ) : ?>
<content:encoded><![CDATA[<?php echo $content; ?>]]></content:encoded>
<?php else : ?>
<content:encoded><![CDATA[<?php the_excerpt_rss(); ?>]]></content:encoded>
<?php endif; ?>
<?php endif; ?>
제 생각에는 get_the_content_feed라는 함수가 feed.php 파일에 있는데 이 함수가 [video]와 같은 것을 <video>로 바꿔주는게 아닌가 하는 생각이 드는데요.
해당 함수 코드는 아래와 같습니다.
function get_the_content_feed( $feed_type = null ) {
if ( ! $feed_type ) {
$feed_type = get_default_feed();
}
/** This filter is documented in wp-includes/post-template.php */
$content = apply_filters( 'the_content', get_the_content() );
$content = str_replace( ']]>', ']]>', $content );
/**
* Filters the post content for use in feeds.
*
* @since 2.9.0
*
* @param string $content The current post content.
* @param string $feed_type Type of feed. Possible values include 'rss2', 'atom'.
* Default 'rss2'.
*/
return apply_filters( 'the_content_feed', $content, $feed_type );
}
따라서 이미 이렇게 워드프레스에 있는 rss 변환 함수를 kboard rss에도 적용시켜주면 해결이 되지 않을까 싶은데..
어떻게 적용해야될지를 모르겠습니다