Images from posts and pages are at “1”

  • Resolved Arthur

    Hi, I was setting this up after Yoast and it seems that I have lost my images on a page and post sitemaps.

    Please advice

    • This topic was modified 3 weeks, 6 days ago by Arthur.
Viewing 6 replies - 31 through 36 (of 36 total)
  • Hello, here it is (however, please, consider that our filter works with Uncode since it has its own shortcodes, like uncode_index, and some original attributes like media and medias):

    add_filter('wpseo_sitemap_urlimages', 'uncode_add_images_yoast_sitemap', NULL, 2);
    function uncode_add_images_yoast_sitemap($images, $post_id) {
    
    	$post = get_post($post_id);
    	$content = $post->post_content;
    
    	$image_ids = array();
    
    	//Find uncode_index occurences and match IDs inside them
    	preg_match_all( '/\[uncode_index ([^\]]*)by_id:(.*?)[\||"]/', $content, $uncode_index );
    
    	if ( isset( $uncode_index[2] ) && !empty($uncode_index[2]) ) { //If "by_id" values exist
    		$uncode_index_ids = $uncode_index[2];
    	    foreach ( $uncode_index_ids as $uncode_index_ids_occurence ) {
    	    	$uncode_index_ids_occurence_list = explode(',',$uncode_index_ids_occurence);
    
    	    	foreach ($uncode_index_ids_occurence_list as $uncode_index_id) {
    	            $thumb_id_here = get_post_thumbnail_id($uncode_index_id);//Get featured image IDs from post ID
    	            if ( $thumb_id_here !== ''  && $thumb_id_here != 0 ) {
    		            $image_ids[] = $thumb_id_here; //Store featured image ID
    	            }
    	    	}
    	    }
    	}
    
    	//Find vc_single_image occurences and match IDs inside them
    	preg_match_all( '/\[vc_single_image([^\]]*) media="(.*?)"/', $content, $vc_single_image );
    
    	if ( isset( $vc_single_image[2] ) && !empty($vc_single_image[2]) ) { //If "media" values exist
    		$vc_single_image_ids = $vc_single_image[2];
    	    foreach ( $vc_single_image_ids as $vc_single_image_ids_occurence ) {
                $image_ids[] = $vc_single_image_ids_occurence; //Store single image ID
    	    }
    	}
    
    	//Find vc_gallery occurences and match IDs inside them
    	preg_match_all( '/\[vc_gallery([^\]]*) medias="(.*?)"/', $content, $vc_gallery );
    
    	if ( isset( $vc_gallery[2] ) && !empty($vc_gallery[2]) ) { //If "medias" values exist
    		$vc_gallery_ids = $vc_gallery[2];
    	    foreach ( $vc_gallery_ids as $vc_gallery_ids_occurence ) {
    	    	$vc_gallery_ids_occurence_list = explode(',',$vc_gallery_ids_occurence);
    
    	    	foreach ($vc_gallery_ids_occurence_list as $vc_gallery_id) {
    	            $image_ids[] = $vc_gallery_id; //Store image ID
    	    	}
    	    }
    	}
    
    	$media = get_post_meta($post->ID, '_uncode_featured_media', 1);
    	if ($media !== '') {
    		$image_ids = array_merge($image_ids, explode(',', $media));
    	}
    
    
        foreach ( $image_ids as $image_id ) { //Populate an array with URLs taken from featured image IDs
        	$image_url = wp_get_attachment_image_src($image_id, 'large');
        	$image_title = get_the_title($image_id);
        	$image_alt = get_post_meta( $image_id, '_wp_attachment_image_alt', true);
        	$new_data_img = array( 'src' => $image_url[0], 'title' => esc_html($image_title), 'alt' => $image_alt );
        	$images[] = $new_data_img;
        }
    
    	return $images;
    
    }

    Hello Arthur,

    Can you add your site’s FTP access in the Sensitive Data Section so we can add the filter in functions.php file? Updating the code from Theme Editor is failing on your site.

    Looking forward to helping you.

    • This reply was modified 1 week, 6 days ago by Pratik.

    Hello,

    I have updated the sensitive data as requested. Can you please check further?

    Thank you.

    Hello,

    I logged into your site and I updated the code in functions.php file. That seemed to have fixed the issue. Can you please confirm?

    Thank you.

    HI Pratik,

    Thank you very much for this. This seems to be working now and I have Rankmath successfully running.

    Will monitor it and report if anything is unstable.

    Also, did you change the child functions.php file or theme functions.php file?

    Thank you very much!

    Arthur

    Hello,

    We always make changes to the theme that is active on your website. You can confirm the same from your end as well.

    If you need help with anything else, please open a new support ticket here so we can help:

    https://support.rankmath.com

    We are always here for assistance.

Viewing 6 replies - 31 through 36 (of 36 total)

You must be logged in to reply to this ticket.