【问题标题】:is image_downsize supposed to work inside a custom walker?image_downsize 应该在自定义助行器中工作吗?
【发布时间】:2015-05-04 14:53:46
【问题描述】:

我根据Displaying a wordpress menu with submenu and thumbnail这里的代码实现了这个自定义walker

(它应该检索图像 URL 以将其用作 css 背景,而不是呈现实际的 img 标签)

一切正常,除了 wp_get_attachment_image_src 总是返回 false。

add_filter('walker_nav_menu_start_el', 'generate_nav_images', 20, 4);

    add_filter('walker_nav_menu_start_el', 'generate_nav_images', 20, 4);
    function generate_nav_images($item_output, $item, $depth, $args){

            if(has_post_thumbnail($item->object_id)){


                $thumb_url = wp_get_attachment_image_src( (int)$item->object_id, 'thumbnail', false );

                $dom = new DOMDocument();
                $dom->loadHTML($item_output); 
                $dom->getElementsByTagName('a')->item(0)->setAttribute( 'style' , 'background-image: url('. $thumb_url[0] . ');' );
                $item_output = $dom->saveHTML();
        }
        return $item_output;
    }

页面确实有缩略图,页面 ID 返回正常,get_the_post_thumbnail() 返回正常,但 wp_get_attachment_image_src() 没有。

我跟踪了许多关于图像大小返回 false 的函数的问题,除了 has_thumbnail()。

我跟踪到的更深的“假”值是过滤器“image_downsize”,但后来这个功能对我来说太高级了:(

image_downsize 甚至应该在助行器内部工作吗?

谢谢。

【问题讨论】:

    标签: wordpress thumbnails menuitem


    【解决方案1】:

    这是你的解决方案:

    add_filter('walker_nav_menu_start_el', 'generate_nav_images', 20, 4);
    function generate_nav_images($item_output, $item, $depth, $args){
        if( $args->theme_location == "topnav") {
            if(has_post_thumbnail($item->object_id)){
    
                // get attachment ID
                $thumb_id = get_post_meta($item->object_id, '_thumbnail_id', true);
                $thumb_url = wp_get_attachment_image_src( $thumb_id, 'thumbnail', false );
    
                $dom = new DOMDocument();
                $dom->loadHTML($item_output); 
                $dom->getElementsByTagName('a')->item(0)->setAttribute( 'style' , 'background-image: url('. $thumb_url[0] . ');' );
                $item_output = $dom->saveHTML();
            }
        }
        return $item_output;
    }
    

    wp_get_attachment_image_src() 期望附件 ID 不是帖子 ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      相关资源
      最近更新 更多