3

我正在为我的 Pinterest 按钮使用这两个 Wordpress 功能。我想要实现的是下面的流程图。

在此处输入图像描述

函数捕捉该图像

   function catch_that_image() {
      global $post, $posts;
      $first_img = '';
      ob_start();
      ob_end_clean();
      $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
      $first_img = $matches [1] [0];

      if(empty($first_img)){ //Defines a default image
        $first_img = "http://www.mywebsite.com/wp-content/themes/Lord%20of%20Avernus%20-%20Abaddon/Images/Deafult_Img.png";
      }
      return $first_img;
    }

功能获取特色图片

function get_featured_image( $size = 'full' ) {
    global $post;
    if ( has_post_thumbnail($post->ID) ) {
        $featured_image = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), $size);
        return $featured_image[0];
    }
    return false;
}

WordPress 特色缩略图

<?php the_post_thumbnail(); ?> 

正如您在我的流程图中看到的那样,我正在尝试将上面的两个功能结合起来。问题是它不起作用。

这是我的代码:

功能 合并 Pinterest 图像功能

function pinterest_image_snatcher($size = 'full' ) {
        global $post;
       if ( has_post_thumbnail($post->ID) ) {
            $featured_image = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), $size);
            return $featured_image[0];
        }

else
      $first_img = '';
      ob_start();
      ob_end_clean();
      $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
      $first_img = $matches [1] [0];

      if(empty($first_img)){ //Defines a default image
        $first_img = "http://www.mywebsite.com/wp-content/themes/Lord%20of%20Avernus%20-%20Abaddon/Images/Deafult_Img.png";
      }
      return $first_img;
    }

上面的前两个函数工作得很好,但第三个不是!任何人都可以帮助巩固上述两个功能。欢迎大家修改代码。

请帮助我亲爱的 PHP 专家。我的代码搞砸了,无法正常工作。你介意按照流程图修改一下吗?谢谢你!

如何为 WordPress 博客添加 Pinterest 按钮

4

1 回答 1

2

试试这个:

function pinterest_image_snatcher( $size = 'full' ) {

    global $post;
    $first_img = '';

    if ( has_post_thumbnail($post->ID) ) {
        $featured_image = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), $size);
        $first_img = $featured_image[0];
    } else {
        $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
        $first_img = $matches[1][0];
        if( empty($first_img) ) {
            $first_img = "http://www.mywebsite.com/wp-content/themes/Lord%20of%20Avernus%20-%20Abaddon/Images/Deafult_Img.png";
        }      
    }
    return $first_img;
}

我刚刚修复了评论中提到的@royal-bg 缺少的括号并稍微改变了逻辑。

于 2013-10-29T08:59:54.717 回答