• 06-01-2015, 21:24:21
    #1
    Merhaba arkadaşlar. PHP bilmediğimden şu sorunu halledemedim. Sizlerden yardım bekliyorum. wp-includes/media.php dosyasında 2 tane fonksiyondan birinde işe yarayan bir kod diğerinde işe yaramıyor. Kod şu: esc_attr($alt)


    Fonksiyonlar ise şunlar;


    1. Fonksiyon


    function get_image_tag($id, $alt, $title, $align, $size='medium') {
        list( $img_src, $width, $height ) = image_downsize($id, $size);    $hwstring = image_hwstring($width, $height);
        $title = $title ? 'title="' . esc_attr( $title ) . '" ' : '';
        $class = 'align' . esc_attr($align) .' size-' . esc_attr($size) . ' wp-image-' . $id;
        /**     * Filter the value of the attachment's image tag class attribute.     *     * @since 2.6.0     *     * @param string $class CSS class name or space-separated list of classes.     * @param int    $id    Attachment ID.     * @param string $align Part of the class name for aligning the image.     * @param string $size  Optional. Default is 'medium'.     */    $class = apply_filters( 'get_image_tag_class', $class, $id, $align, $size );
        $html = '<img src="' . esc_attr($img_src) . '" alt="' . esc_attr($alt) . '" ' . $title . $hwstring . 'class="' . $class . '" />';
        /**     * Filter the HTML content for the image tag.     *     * @since 2.6.0     *     * @param string $html  HTML content for the image.     * @param int    $id    Attachment ID.     * @param string $alt   Alternate text.     * @param string $title Attachment title.     * @param string $align Part of the class name for aligning the image.     * @param string $size  Optional. Default is 'medium'.     */    $html = apply_filters( 'get_image_tag', $html, $id, $alt, $title, $align, $size );
        return $html;}

    2. Fonksiyon:


    function img_caption_shortcode( $attr, $content = null ) {    // New-style shortcode with the caption inside the shortcode with the link and image tags.    if ( ! isset( $attr['caption'] ) ) {        if ( preg_match( '#((?:<a [^>]+>\s*)?<img [^>]+>(?:\s*</a>)?)(.*)#is', $content, $matches ) ) {            $content = $matches[1];            $attr['caption'] = trim( $matches[2] );        }    }
        /**     * Filter the default caption shortcode output.     *     * If the filtered output isn't empty, it will be used instead of generating     * the default caption template.     *     * @since 2.6.0     *     * @see img_caption_shortcode()     *     * @param string $output  The caption output. Default empty.     * @param array  $attr    Attributes of the caption shortcode.     * @param string $content The image element, possibly wrapped in a hyperlink.     */    $output = apply_filters( 'img_caption_shortcode', '', $attr, $content );    if ( $output != '' )        return $output;
        $atts = shortcode_atts( array(        'id'      => '',        'align'      => 'alignnone',        'width'      => '',        'caption' => '',        'class'   => '',        'alt'   => '',    ), $attr, 'caption' );
        $atts['width'] = (int) $atts['width'];    if ( $atts['width'] < 1 || empty( $atts['caption'] ) )        return $content;
        if ( ! empty( $atts['id'] ) )        $atts['id'] = 'id="' . esc_attr( $atts['id'] ) . '" ';
        $class = trim( 'wp-caption ' . $atts['align'] . ' ' . $atts['class'] );
        if ( current_theme_supports( 'html5', 'caption' ) ) {        return '<figure ' . $atts['id'] . 'style="width: ' . (int) $atts['width'] . 'px;" class="' . esc_attr( $class ) . '">'        . do_shortcode( $content ) . '<figcaption class="wp-caption-text">' . $atts['caption'] . '</figcaption></figure>';    }
        $caption_width = 10 + $atts['width'];
        /**     * Filter the width of an image's caption.     *     * By default, the caption is 10 pixels greater than the width of the image,     * to prevent post content from running up against a floated image.     *     * @since 3.7.0     *     * @see img_caption_shortcode()     *     * @param int    $caption_width Width of the caption in pixels. To remove this inline style,     *                              return zero.     * @param array  $atts          Attributes of the caption shortcode.     * @param string $content       The image element, possibly wrapped in a hyperlink.     */         $caption_width = apply_filters( 'img_caption_shortcode_width', $caption_width, $atts, $content );
        $style = '';    if ( $caption_width )        $style = 'style="width: ' . (int) $caption_width . 'px" '; 
        return '<h3>' . $atts['caption'] . '</h3><div ' . $atts['id'] . $style . 'class="' . esc_attr( $class ) . '">'    . do_shortcode( $content ) . '<p class="wp-caption-text">' . esc_attr($alt) . '</p></div>';}

    Benim sorum şu: 1. Fonksiyondaki esc_attr($alt) kodu resimlerin alternatif yazılarını çekebiliyorken 2. Fonksiyondaki esc_attr($alt) kodu bunu yapamıyor. esc_attr($alt) kodunu 2. Fonksiyonda da etkin hale nasıl getirebilirim?
  • 06-01-2015, 22:16:40
    #2
    İkinci fonksiyonda $alt diye değişken olmadığı için boş geliyor( aslında çalışıyor )
    img_caption_shortcode fonksiyonuna bir değişken daha ekleyin $alt diye ve img_caption_shortcode fonksiyonuna 3 parametre gönderin istediğiniz olmuş olur
  • 06-01-2015, 23:11:53
    #3
    By_MiLaT adlı üyeden alıntı: mesajı görüntüle
    İkinci fonksiyonda $alt diye değişken olmadığı için boş geliyor( aslında çalışıyor )
    img_caption_shortcode fonksiyonuna bir değişken daha ekleyin $alt diye ve img_caption_shortcode fonksiyonuna 3 parametre gönderin istediğiniz olmuş olur
    Cevabın için çok teşekkür ederim hocam. PHP'den anlamadığımdan dediklerini yapamayacağım maalesef. Zahmet olmazsa o dediklerini uygulayan kodu yazman mümkün mü buraya? Yazacağınız koddan faydalanan başkaları da çıkar belki.