首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress PHP回显alt文本

Wordpress PHP回显alt文本
EN

Stack Overflow用户
提问于 2017-05-31 18:52:29
回答 2查看 1.2K关注 0票数 1

我已经使用WP模板http://wpshower.com/themes/expositio/建立了一个简单的网站

网址是:Mathiaswarnich.dk

这是好的,但它不显示alt文本,我不能弄清楚php设置。这是图片的代码:

代码语言:javascript
复制
 * The template for displaying image attachments

// Retrieve attachment metadata.
$metadata = wp_get_attachment_metadata();

get_header();
?>

<section id="primary" class="content-area image-attachment">
    <div id="content" class="site-content" role="main">
代码语言:javascript
复制
        <header class="entry-header">
            <?php the_title('<h1 class="entry-title">', '</h1>'); ?>
            <div class="entry-meta">
                <div class="full-size-link">
                    <a href="<?php echo wp_get_attachment_url(); ?>"><?php echo $metadata['width']; ?> &times; <?php echo $metadata['height']; ?></a>
                </div>
                <div class="parent-post-link">
                    <a href="<?php echo get_permalink($post->post_parent); ?>" rel="gallery"><?php echo get_the_title($post->post_parent); ?></a>
                </div>
            </div>
        </header><!--
        --><article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
            <div class="entry-content">
                <div class="entry-attachment">
                    <div class="attachment">
                        <?php expositio_the_attached_image(); ?>
                    </div><!-- .attachment -->
<?php if (has_excerpt()) : ?>
                    <div class="entry-caption">
                        <?php the_excerpt(); ?>
                    </div><!-- .entry-caption -->
<?php endif; ?>
                </div><!-- .entry-attachment -->
                <?php
                the_content();
                wp_link_pages(array(
                    'before' => '<div class="page-links"><span class="page-links-title">'.__('Pages:', 'expositio').'</span>',
                    'after' => '</div>',
                    'link_before' => '<span>',
                    'link_after' => '</span>',
                ));
                ?>
EN

回答 2

Stack Overflow用户

发布于 2017-06-07 17:41:11

是的,我最近在我的摄影网站上也注意到了同样的问题,该网站也使用了WP Expositio主题。

Stender's answer中介绍的解决方法将不起作用,因为图库是由自定义函数处理的。

解决方案非常简单:

模板步骤1:在主题目录中打开/inc/-tags.php。

Step 2:转到第87行并在此处检查代码:

代码语言:javascript
复制
function expositio_image_tag($thumbnail_id, $size = 'post-thumbnail') {
$meta = wp_get_attachment_metadata($thumbnail_id);
if ($meta === false || $meta === '') {
    return sprintf(
        '<img src="%s" width="%s" height="%s" alt="" />',
        wpShower::defaultImage(),
        wpShower::$default_image_width,
        wpShower::$default_image_height
    );
}

$src = wp_get_attachment_image_src($thumbnail_id, $size);
$size_available = isset($meta['sizes'][$size]);
return sprintf(
    '<img src="%s" width="%s" height="%s" alt="" />',
    $src[0],
    $size_available ? $meta['sizes'][$size]['width'] : $meta['width'],
    $size_available ? $meta['sizes'][$size]['height'] : $meta['height']
);
}

步骤3:用下面的代码块替换上面的代码块:

代码语言:javascript
复制
function expositio_image_tag($thumbnail_id, $size = 'post-thumbnail') {
$meta = wp_get_attachment_metadata($thumbnail_id);
if ($meta === false || $meta === '') {
    return sprintf(
        '<img src="%s" width="%s" height="%s" alt="" />',
        wpShower::defaultImage(),
        wpShower::$default_image_width,
        wpShower::$default_image_height
    );
}
$alt = get_post_meta($thumbnail_id, '_wp_attachment_image_alt', true);
$src = wp_get_attachment_image_src($thumbnail_id, $size);
$size_available = isset($meta['sizes'][$size]);
return sprintf(
    '<img src="%s" width="%s" height="%s" alt="%s" />',
    $src[0],
    $size_available ? $meta['sizes'][$size]['width'] : $meta['width'],
    $size_available ? $meta['sizes'][$size]['height'] : $meta['height'],
    $alt
);
}

Step 4:保存/上传编辑过的文件。刷新站点。

基本上,我们在这里创建了一个$alt变量,它检索图像的alt属性,并将其添加到格式化的字符串值数组中。好好享受吧。

票数 1
EN

Stack Overflow用户

发布于 2017-05-31 20:58:35

如果它是一个特色图像-您可以更改

代码语言:javascript
复制
 <?php expositio_the_attached_image(); ?> 

到这个

代码语言:javascript
复制
//full is the size - If you have a size from the theme, use that instead.
//don't know how your theme works, but maybe 'expositio_attachment_size'
<?php the_post_thumbnail('full'); ?>

或者甚至是这个

代码语言:javascript
复制
<div class="attachment">
      <?php expositio_the_attached_image(); ?>
</div><!-- .attachment -->

到这个

代码语言:javascript
复制
<?php if ( has_post_thumbnail() ) : ?>
    <div class="attachment">
        <?php the_post_thumbnail('full'); ?>
    </div><!-- .attachment -->
<?php endif; ?>

如果缺少一些图像类,还可以向该函数添加属性:如下所示

代码语言:javascript
复制
<?php if ( has_post_thumbnail() ) : ?>
    <div class="attachment">
        <?php the_post_thumbnail('full', ['class' => 'img-responsive responsive--full', 'title' => 'Feature image']); ?>
    </div><!-- .attachment -->
<?php endif; ?>

祝你好运,玩得开心!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44282804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档