skip to Main Content

I want to re-title my image’s alt tags etc based on the page they are being displayed on. For SEO Purposes.

I’ve tried to write a PHP function to do so and call the function on page load with "alt=<?php echo $post_title ?>" and "title=<?php echo $post_title ?>" but nothing is working.

How would you do it? PHP or jQuery… or?

Here’s one of the functions I tried to manipulate and turn into something that works… I did get it to change the alt tags but I havent had any success beyond that.

function isa_add_img_title( $attr, $attachment = null ) {

    $img_title = trim( strip_tags( $attachment->post_title ) );

    $attr['title'] = $img_title;
    $attr['alt'] = $img_title;

    return $attr;
}
add_filter('wp_get_attachment_image_attributes','isa_add_img_title', 10, 2);

It appears this post may have had the answer but the link in the answer is now broken:
Dynamically filling image alt tags with the page title, PHP

Thanks so much! Appreciate any help.

2

Answers


  1. <!DOCTYPE html>
    <?php
    $test ="Test";
    ?>
    <html>
    <head>
        <title><?php echo "$test" ?></title>
        
    </head>
    
    <body>
        
    <div class="center">
        
    <img src="ribbn2.jpg"  alt=<?php echo "$test" ?> width="100%" height="100%">
    
    Login or Signup to reply.
  2. This will set the alt and title of every image on the page to the post title.

    function duck_diver_add_img_title( $attr, $attachment = null ) {
        // Fetch the global post object. This is what the page it's on is.
        global $post;
        // Get the post title.
        $img_title = wp_kses_post( $post->post_title );
    
        $attr['title'] = $img_title;
        $attr['alt']   = $img_title;
    
        return $attr;
    }
    add_filter( 'wp_get_attachment_image_attributes', 'duck_diver_add_img_title', 10, 2 );
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search