正在尝试为我的帖子的特色图像添加属性

时间:2017-04-30 作者:Tyler Lowmiller

我正在尝试将值为“mylightbox”的属性数据featherlight添加到我所有的帖子特色图像中。我相信这就是我需要的代码,但我不知道我把它放在哪里了。我正在处理基线2017主题。

if ( has_post_thumbnail() ) {
the_post_thumbnail();
the_post_thumbnail(\'post_thumbnail\', array(\'data-featherlight\'=>\'mylightbox\'));
} 
谢谢!

2 个回复
SO网友:Ajay Malhotra

您可以这样尝试:

if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
        the_post_thumbnail( \'full\', array( \'class\'  => \'responsive-class\' ) ); // show featured image
    } 

SO网友:hwl

post_thumbnail_html

要更改html输出,需要挂接过滤器post_thumbnail_html

From Codex:

apply_filters( \'post_thumbnail_html\', string $html, int $post_id, string $post_thumbnail_id, string|array $size, string $attr )

过滤帖子缩略图HTML。

此筛选器由调用get_the_post_thumbnail位于post\\u thumbnail\\u template的第177行。php之后$html 已设置为:

$html = wp_get_attachment_image( $post_thumbnail_id, $size, false, $attr );

在上下文中筛选:

/**
* Filters the post thumbnail HTML.
     * @param string       $html              The post thumbnail HTML.
     * @param int          $post_id           The post ID.
     * @param string       $post_thumbnail_id The post thumbnail ID.
     * @param string|array $size              The post thumbnail size. Image size or array of width and height values (in that order). Default \'post-thumbnail\'.
     * @param string       $attr              Query string of attributes.
*/
return

 apply_filters( \'post_thumbnail_html\', $html, $post->ID, $post_thumbnail_id, $size, $attr );

添加data-featherlight="mylightbox" 示例:

因此添加data-featherlight="mylightbox" 可能是这样的:

add_filter(\'post_thumbnail_html\', \'my_thumbnail_filter_method\', 10, 5 );
function my_thumbnail_filter_method($html, $post->ID, $post_thumbnail_id, $size, $attr) {
     $id = get_post_thumbnail_id();
     $src = wp_get_attachment_image_src($id, $size); 
     $alt = get_the_title($id); /
     $class = $attr[\'class\'];

    $html = \'<img src="\' . $src[0] . \'" alt="\' . $alt . \'" class="\' . $class . \'" data-featherlight="mylightbox" />\';
}
另两个行动挂钩位于$html 设置在get_the_pos_thumbnail.

  1. begin_fetch_post_thumbnail_html
  2. end_fetch_post_thumbnail_html$post->ID, $post_thumbnail_id, $size. 看起来像是过滤post_thumbnail_html 是访问<img> html字符串。

    上的注释has_post_thumbnail(), 因为它似乎经常出现:如果有任何图像附加到帖子,此方法将返回true,而不是专门针对帖子缩略图(又名特色图像)。

相关推荐

如何将Java脚本添加到Custom-Page.php模板?

如何将javascript添加到自定义页面。php模板?如何使从w3schools ajax教程获得的以下javascript在自定义页面上工作。php模板?任何帮助都将不胜感激。工作javascript包含在以下HTML中:<!DOCTYPE html> <html> <style> table,th,td { border : 1px solid black; border-collapse: collapse;&#x