WordPress 이미지 캡션을 반응 형으로 만들기


10

이 웹 페이지 에는 Wordpress에 의해 삽입 된 이미지가 포함되어 있습니다. 첫 번째 이미지를 삽입하는 데 사용되는 코드는 다음과 같습니다.

[caption id="attachment_887" align="alignnone" width="604"]
    <a href="http://steven.doig.com.au/files/2013/06/Forest_Legacy_m.jpg">
        <img class="size-large wp-image-887" alt="a Forest Legacy group" src="http://steven.doig.com.au/files/2013/06/Forest_Legacy_m-1024x681.jpg" width="1024" height="681" />
    </a> a Forest Legacy group[/caption]

이 이미지는 CSS에 의해 제어됩니다 :

#content .wp-caption a img {
    width: 614px;
    height: auto;
}

이 이미지를 반응 형으로 만들고 싶습니다. CSS를 삽입했습니다 :

@media (max-width:988px) {
    #content .wp-caption a img {
        width: 99.03225806%; /* 614/620 */
        height: auto;
    }
}

그러나 DIV.wp- 캡션은 Wordpress 게시물에 지정된대로 604px로 유지됩니다. 나는 이것을 백분율 (97.41935483 %)로 지정하려고 시도했지만 Wordpress는 이것을 104px로 재 해석했습니다.

인라인 CSS가 스타일 시트에 삽입 한 CSS를 재정의합니다.

<div id="attachment_887" class="wp-caption alignnone" style="width: 614px">

.wp-caption을 반응 형으로 만드는 방법에 대한 아이디어가 있습니까?

답변:


11

다음을 사용하려고합니다.

@media (max-width: 988px){
  .wp-caption {
    /* Force the box to be 100% */
    width: 100% !important;
  }
  #content .wp-caption a img {
    /* Scale down if too big */
    max-width: 99.03225806%; /* 614/620 */
    height: auto;
  }
}

7

또 다른 가능성은 폭이 더 이상 하드 코딩되지 않도록 단축 코드 출력을 변경하는 것입니다. 너비가 없도록 Codex 예제 수정 :

add_filter('img_caption_shortcode', 'my_img_caption_shortcode_filter',10,3);

/**
 * Filter to replace the [caption] shortcode text with HTML5 compliant code
 *
 * @return text HTML content describing embedded figure
 **/
function my_img_caption_shortcode_filter($val, $attr, $content = null)
{
    extract(shortcode_atts(array(
        'id'    => '',
        'align' => '',
        'width' => '',
        'caption' => ''
    ), $attr));

    if ( 1 > (int) $width || empty($caption) )
        return $val;

    $capid = '';
    if ( $id ) {
        $id = esc_attr($id);
        $capid = 'id="figcaption_'. $id . '" ';
        $id = 'id="' . $id . '" aria-labelledby="figcaption_' . $id . '" ';
    }

    return '<figure ' . $id . 'class="wp-caption ' . esc_attr($align) . '" >'
    . do_shortcode( $content ) . '<figcaption ' . $capid 
    . 'class="wp-caption-text">' . $caption . '</figcaption></figure>';
}

http://codex.wordpress.org/Function_Reference/add_filter#Example


2

훨씬 간단하고 깨끗한 솔루션은 다음과 같습니다.

function my_img_caption_shortcode_width($width, $atts, $content)
{
    return 0;
}

add_filter('img_caption_shortcode_width', 'my_img_caption_shortcode_width', 10, 3);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.