Home > Net >  Dynamically change image titles and alt tags through PHP - On html render, not in database
Dynamically change image titles and alt tags through PHP - On html render, not in database

Time:07-10

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.

CodePudding user response:

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 );

CodePudding user response:

<!DOCTYPE html>
<?php
$test ="Test";
?>
<html>
<head>
    <title><?php echo "$test" ?></title>
    
</head>

<body>
    
<div >
    
<img src="ribbn2.jpg"  alt=<?php echo "$test" ?> width="100%" height="100%">
  • Related