我正在尝试使用带有帖子标题的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');
?>
答案 0 :(得分:1)
如果我在控制台上显示你的测试网址
jQuery( ".hentry" ).find("img").each(function() {
jQuery(this).attr("title", "new");
jQuery(this).attr("alt", "new");
});
它改变了标题和alt。因此,无论是$
还是您的get_the_title
都没有返回标题(可能在循环之外)
答案 1 :(得分:0)
这对我有用:
$(document).ready(function() {
$('img.hentry').each(function() {
$(this).attr("title", "bbbbbbbbbbbbbb");
$(this).attr("alt", "xxxxxxxxxxxx");
});
});
请在这里查看:http://jsfiddle.net/4qgaX/
答案 2 :(得分: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);
答案 3 :(得分:0)
使用此插件
Alt Manager插件是一个简单的插件,可将(页面-帖子)上的图像Alt和Title属性文本分别更改为您的网站名称或(帖子或页面)标题。此插件可批量更改图像Alt和Title属性不需要更改媒体库上的图像信息。