1

我在 Wordpress 中构建了一个自定义画廊类型作为新的简码。

但是我想让它对 SEO 更友好一点,所以我尝试调用 alt 标签,如果找不到 alt 标签,请将其替换为标题。

到目前为止,我有以下内容(并且工作正常),但是如果 $alt 为空,我会试图让 $alt 回退到标题?任何想法/帮助表示赞赏!

$bigimageUrl = wp_get_attachment_image_src($attachment_id,$size='full-size');
$littleimageUrl = wp_get_attachment_image_src($attachment_id,$size='thumbnail');
$title_raw = $attachment->post_title;
$title = preg_replace("/[^a-zA-Z0-9\s]/", " ", $title_raw);
$alt_raw = get_post_meta($attachment_id, '_wp_attachment_image_alt', true);
$alt = preg_replace("/[^a-zA-Z0-9\s]/", " ", $alt_raw);

echo '<img class="gallerytype" title="'; echo $title; echo '" alt="'; echo $alt; echo '" data-rsTmb="'; echo $littleimageUrl[0]; echo '" src="'; echo $bigimageUrl[0]; echo '"/> ';
4

1 回答 1

1

而不是一个echo接一个地使用:

echo '<img class="gallerytype" title="';
echo $title; 
echo '" alt="'; 
echo $alt; echo '" data-rsTmb="'; 
echo $littleimageUrl[0]; 
echo '" src="'; 
echo $bigimageUrl[0]; echo '"/> ';

您可以使用逗号 ( ,) 分隔要输出的表达式:

echo '<img class="gallerytype" title="', $title, '" alt="', ..., '"/> ';

这应该已经帮助您使代码更具可读性。

然后你想设置$alt$title如果它是空的。所以在输出之前这样做:

empty($alt) && $alt = $title;

读作:$alt是空的并且$alt$title

你也可以用一个if子句来写:

if (empty($alt)) $alt = $title;

那应该为你做。

于 2012-09-28T10:36:29.047 回答