WP Post-Thumbnail

时间:2020-06-17 作者:ryzza

我已经在这里多次看到过这个问题,但遗憾的是,还没有任何帮助。

现在我有以下代码:

<h2 class="title_bar">Videos</h2>
<ul class="vlist">
<?php $args = array( \'numberposts\' => 60, \'orderby\' => \'rand\' );
            $rand_posts = get_posts( $args );
            foreach( $rand_posts as $post ) : ?>

  <li class="video" id="video_<?php the_ID(); ?>">
 <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">

            <?php $thumb = tube_getcustomfield(\'wtp_thumb_url\',get_the_ID()); if(!empty($thumb)) { ?>
                        <img src="<?php echo $thumb; ?>" alt="<?php the_title_attribute(); ?>" title="<?php the_title_attribute(); ?>" width="240p" height="180" class="thumb" /> <?php } else { ?>
                        <img src="<?php bloginfo(\'template_url\') ?>/images/pic_post1.jpg" alt="<?php the_title_attribute(); ?>" title="<?php the_title_attribute(); ?>" class="thumb"/><?php } ?> 

 <i></i>
  <span class="box">
 <span class="views"><?php if(function_exists(\'the_views\')) { the_views(); } ?></span>
 <span class="time"><?php echo time_ago(); ?></span>
 </span>

  <strong><?php short_title(\'...\', \'34\'); ?></strong> </a>


 </li>
<?php endforeach; ?>

 </ul>

<div class="clear"></div>
我不确定我到底做错了什么,因为;特色图片“;是积极的,我也设置了我的单曲。php文件。而不是缩略图,标题是2倍,而不是标题+缩略图等-标题+缩略图将是我现在的目标:)!

如果有人能看一下,告诉我我做错了什么或如何修复,我会很感激的:/

附言:我正在使用最新官方版本的WordPress。

3 个回复
SO网友:Tony Djukic

所以有几件事。。。

the_title() 获取标题,但它包含标记,因此在title 属性,它实际上会打印出带有标记的代码,如<h1>The Title</h1> 然后从title="".

因此,正确的方法是:

<a href="<?php the_permalink() ?>" title="<?php echo get_the_title(); ?>">
这就是为什么会显示重复的标题。

对于其余部分,这应该可以做到:

<?php
    $thumb = tube_getcustomfield( \'wtp_thumb_url\', get_the_ID() );
    if( !empty( $thumb ) ) { :
        echo \'<img src="\' . $thumb . \'" alt="\' . get_the_title() . \'" title="\' . get_the_title() . \'" width="240" height="180" class="thumb" />\';
    else :
        //If parent theme use this:
        echo \'<img src="\' . get_template_directory_uri() . \'/images/pic_post1.jpg" alt="\' . get_the_title() . \'" title="\' . get_the_title() . \'" class="thumb"/>\';
        //If child theme use this:
        //echo \'<img src="\' . get_stylesheet_directory_uri() . \'/images/pic_post1.jpg" alt="\' . get_the_title() . \'" title="\' . get_the_title() . \'" class="thumb"/>\';
    endif;
 ?>
我不确定您使用的是父主题还是子主题,所以我包含了这两个主题的选项,只需更改包含/未注释的回音行即可。

我不知道tube_getcustomfield( \'wtp_thumb_url\', get_the_ID() ) 返回,因此可以在该行之后尝试var\\u转储,以确保它是附加映像的完整路径:

var_dump( $thumb );
如果这不是一条像http://domain.com/wp-content/uploads/the-image-you-attached.png 那么你也需要解决这个问题。

SO网友:ryzza

我对代码做了一些更改,只是做了一个小屏幕截图,上面有一个示例,显示了它现在的样子以及我希望它的样子(在右侧)。

我们先来看看代码,现在看起来是这样的:

    <h2 class="title_bar">Just Watched Videos</h2>
<ul class="vlist">
<?php $args = array( \'numberposts\' => 12, \'orderby\' => \'rand\' );
            $rand_posts = get_posts( $args );
            foreach( $rand_posts as $post ) : ?>

  <li class="video" id="video_<?php the_ID(); ?>">
<a href="<?php the_permalink() ?>" title="<?php echo get_the_title(); ?>">

            <?php $thumb = tube_getcustomfield(\'wtp_thumb_url\',get_the_ID()); if ( $images = get_children(array(
        \'post_type\' => \'attachment\',
        \'numberposts\' => 1,
        \'post_status\' => null,
        \'post_parent\' => $post->ID
    )));

    foreach( $images as $image ) {
         $attachment = wp_get_attachment_image_src( $image->ID );

    // Size
    $width = 240;
    $height = 160;
    $zoom_crop = 1;
?>

<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php esc_attr( printf( __( \'Click to read %s\', \'truereps\' ), get_the_title() ) ); ?>">
<img src="<?php bloginfo( \'template_directory\' ); ?>/inc/scripts/timthumb.php?src=<?php echo $attachment[0]; ?>&amp;w=<?php echo $width; ?>&amp;h=<?php echo $height; ?>&amp;zc=<?php echo $zoom_crop; ?>" alt="<?php the_title(); ?>" />
</a>

<?php } ?>

 <i></i>
  <span class="box">
 <span class="views"><?php if(function_exists(\'the_views\')) { the_views(); } ?></span>
 <span class="time"><?php echo time_ago(); ?></span>
 </span>
 
  <strong><?php short_title(\'...\', \'34\'); ?></strong> </a>


 </li>
<?php endforeach; ?>

 </ul>

<div class="clear"></div>
这就是它现在的样子:example

我只是从我的电脑上随机拍了一张照片作为例子,但我希望更容易理解我的想象,它看起来是这样的:“我也不使用其他网站的链接,而是使用”;“特色想象”;WordPress中的选项,可将图片上传至WP。

提前谢谢,祝你有美好的一天:)!

SO网友:Trisha

我不认为你已经走得很远了,但看起来你可能把事情复杂化了,这是不必要的。。。。您提到您(还)使用了;特色图片“;因此,我假设您要做的是a)如果自定义字段(“wtp\\u thumb\\u url”)中存在youtube缩略图,则使用该缩略图,如果没有,则使用帖子的特色图像缩略图。

如果我假设正确,那么您需要做的就是这样:

<?php $thumb = tube_getcustomfield(\'wtp_thumb_url\',get_the_ID());  
   if(!empty($thumb)) { ?>
    <img src="<?php echo $thumb; ?>" alt="<?php the_title_attribute(); ?>" title="<?php the_title_attribute(); ?>" width="240p" height="180" class="thumb" />

   <?php } else { 
   the_post_thumbnail() } ?>
(更多阅读:https://developer.wordpress.org/reference/functions/the_post_thumbnail/)

当您使用;“\\u post\\u缩略图”;它默认为媒体设置中设置的缩略图大小。您可以在此处指定所需大小(240x160),也可以添加自定义图像大小,然后在括号内调用该大小;“\\u post\\u缩略图”;或者您可以使用;获取\\u post\\u缩略图;并回显图像标记中的内容,以便可以调整任何其他属性。

当然,这是假设您已经分配了一个特征图像,因此要有第三个选项回退(默认图像),您可以在另一个特征图像测试中对其进行包装,以便如果a)不存在YT缩略图,b)不存在特征图像,则像第一个代码示例中那样显示图像:

<img src="<?php bloginfo(\'template_url\') ?>/images/default_thumb.jpg" alt="<?php get_the_title(); ?>" class="thumb"/><?php } ?>