1

我正在尝试使用带有帖子标题的 jQuery 替换 WordPress 帖子/页面中存在的所有图像的 alt 和 title 属性。

我尝试了几个代码,但没有任何工作,你能帮我解决这个问题吗?

这是我尝试过的代码之一。看起来它应该工作,但事实并非如此。

<?php function ia_prop_js() { 
global $post; ?>
<script type="text/javascript">
$(document).ready(function() {
    $( ".hentry" ).find("img").each(function() {
            $(this).attr("title", "<?php echo esc_attr(get_the_title($post->ID)); ?>");
            $(this).attr("alt", "<?php echo esc_attr(get_the_title($post->ID)); ?>");
    });
});
</script>
<?php }
add_action('wp_head', 'ia_prop_js');
?>
4

4 回答 4

1

如果我在控制台上,在您的测试网址上

jQuery( ".hentry" ).find("img").each(function() {
       jQuery(this).attr("title", "new");
       jQuery(this).attr("alt", "new");
});

它改变了标题和替代。所以要么是 the$要么你的get_the_title不返回标题(可能在循环之外)

于 2013-07-08T12:21:28.873 回答
0

这对我有用:

$(document).ready(function() {
    $('img.hentry').each(function() {
            $(this).attr("title", "bbbbbbbbbbbbbb");
            $(this).attr("alt", "xxxxxxxxxxxx");
    });
});

也请看这里:http: //jsfiddle.net/4qgaX/

于 2013-07-08T12:06:58.700 回答
0

使用这两个功能,这些将有很大帮助:这两个都经过测试

/**
 * Rename the Media/image filename to Post title
 * Example: title I love icecream - filename: i-love-icecream-23.jpg
 *
 */

function wpsx_5505_modify_uploaded_file_names($arr) {

    // Get the parent post ID, if there is one
    if( isset($_REQUEST['post_id']) ) {
        $post_id = $_REQUEST['post_id'];
    } else {
        $post_id = false;
    }

    // Only do this if we got the post ID--otherwise they're probably in
    //  the media section rather than uploading an image from a post.
    if($post_id && is_numeric($post_id)) {

          // Get the post title
        $post_title = get_the_title($post_id);

          // Get the post slug
        $post_slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $post_title);

        // If we found a slug
        if($post_slug) {

            $random_number = rand(10000,99999);
            $arr['name'] = $post_slug . '-' . $random_number . '.jpg';

        }

    }

    return $arr;

}
add_filter('wp_handle_upload_prefilter', 'wpsx_5505_modify_uploaded_file_names', 1, 1);

要将文件名添加到标题和标题,请使用下面的代码

/**
 * Add the Media/Image filename to caption, Title
 *
 */
function wpsx_5505_modify_uploaded_file_meta($meta, $file, $sourceImageType) {

    // Get the parent post ID, if there is one
    if( isset($_REQUEST['post_id']) ) {
        $post_id = $_REQUEST['post_id'];
    } else {
        $post_id = false;
    }

    // Only do this if we got the post ID--otherwise they're probably in
    //  the media section rather than uploading an image from a post.
    if($post_id && is_numeric($post_id)) {

        // Get the post title
        $post_title = get_the_title($post_id);

        // If we found a title
        if($post_title) {

            $meta['title'] = $post_title;
            $meta['caption'] = $post_title;


        }

    }

    return $meta;

}
add_filter('wp_read_image_metadata', 'wpsx_5505_modify_uploaded_file_meta', 1, 3);
于 2016-09-25T05:31:20.943 回答
0

使用这个插件

Alt Manager 插件是一个简单的插件,可以将您(页面 - 帖子)上的图像 Alt 和 Title 属性文本分别更改为您的网站名称或(帖子或页面)标题。此插件可以立即批量更改图像 Alt 和 Title 属性,您不需要更改媒体库上的图像信息。

https://wordpress.org/plugins/alt-manager/

于 2020-02-28T13:32:29.847 回答