如果 $alt 变量为空,则在 WordPress 自定义函数中回退到 $title

问题描述 投票:0回答:2

我在 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 '"/> ';
php wordpress variables
2个回答
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;

这应该适合你。


0
投票

如果你只想在没有alt属性时添加alt属性,你可以使用这个:

`add_filter( 'wp_get_attachment_image_attributes', function(  $atts ) {
    if ( empty( $atts['alt'] ) ) {
$atts['alt'] = the_title_attribute( 'echo=0' );
}
return $atts;
} );`
© www.soinside.com 2019 - 2024. All rights reserved.