アイキャッチの自動挿入関数のソース | 評価特典.確実に稼ぐ商材評価アフィリハローワークゆずまる






アイキャッチの自動挿入関数のソース

/////////////////////////////////////////////
//コピペ一発でWordpressの投稿時にアイキャッチを自動設定するカスタマイズ方法(YouTube対応版)
//http://nelog.jp/auto-post-thumbnail-custum
//楽天イメージタグ対応
//http://tecinfo.yuzumaru.co.jp/
/////////////////////////////////////////////

//WP_Filesystemの利用
require_once(ABSPATH . ‘/wp-admin/includes/image.php’);
//イメージファイルがサーバー内にない場合は取得する
function fetch_thumbnail_image($matches, $key, $post_content, $post_id){
//正しいタイトルをイメージに割り当てる。IMGタグから抽出
$imageTitle = ”;
preg_match_all(‘/<\s*img [^\>]*title\s*=\s*[\””\’]?([^\””\’>]*)/i’, $post_content, $matchesTitle);

if (count($matchesTitle) && isset($matchesTitle[1])) {
$imageTitle = $matchesTitle[1][$key];
}

//処理のためのURL取得
$imageUrl = $matches[1][$key];

//楽天イメージタグの処理
$p=strpos($imageUrl,’?pc’);
if($p>0){
$imgWork=mb_substr($imageUrl,$p);
$imgWork=urldecode($imgWork);
$p=strpos($imgWork,’=’);
if($p>0){
$imgWork=mb_substr($imgWork,$p+1);
$p=strpos($imgWork,’?’);
if($p>0){
$imageUrl=mb_substr($imgWork,0,$p);
}
}
}

//ファイル名の取得
$filename = substr($imageUrl, (strrpos($imageUrl, ‘/’))+1);

if (!(($uploads = wp_upload_dir(current_time(‘mysql’)) ) && false === $uploads[‘error’])){
return null;
}
//ユニック(一意)ファイル名を生成
$filename = wp_unique_filename( $uploads[‘path’], $filename );
//ファイルをアップロードディレクトリに移動
$new_file = $uploads[‘path’] . “/$filename”;
if (!ini_get(‘allow_url_fopen’)) {
$file_data = curl_get_file_contents($imageUrl);
} else {
$file_data = @file_get_contents($imageUrl);
}

if (!$file_data) {
return null;
}

file_put_contents($new_file, $file_data);

//ファイルのパーミッションを正しく設定
$stat = stat( dirname( $new_file ));
$perms = $stat[‘mode’] & 0000666;
@ chmod( $new_file, $perms );

//ファイルタイプの取得。サムネイルにそれを利用
$wp_filetype = wp_check_filetype( $filename, $mimes );

extract( $wp_filetype );

//ファイルタイプがない場合、これ以上進めない
if ( ( !$type || !$ext ) && !current_user_can( ‘unfiltered_upload’ ) ) {
return null;
}

//URLを作成
$url = $uploads[‘url’] . “/$filename”;

//添付(attachment)配列を構成
$attachment = array(
‘post_mime_type’ => $type,
‘guid’ => $url,
‘post_parent’ => null,
‘post_title’ => $imageTitle,
‘post_content’ => ”,
);

$thumb_id = wp_insert_attachment($attachment, $file, $post_id);
if ( !is_wp_error($thumb_id) ) {
//attachmentのアップデート
wp_update_attachment_metadata( $thumb_id, wp_generate_attachment_metadata( $thumb_id, $new_file ) );
update_attached_file( $thumb_id, $new_file );

return $thumb_id;
}

return null;
}

//投稿内の最初の画像をアイキャッチに設定する(Auto Post Thumnailプラグイン的な機能)
function auto_post_thumbnail_image() {
global $wpdb;
global $post;
$post_id = $post->ID;

//アイキャッチが既に設定されているかチェック
if (get_post_meta($post_id, ‘_thumbnail_id’, true) || get_post_meta($post_id, ‘skip_post_thumb’, true)) {
return;
}

$post = $wpdb->get_results(“SELECT * FROM {$wpdb->posts} WHERE id = $post_id”);

//正規表現にマッチしたイメージのリストを格納する変数の初期化
$matches = array();

//投稿本文からすべての画像を取得
preg_match_all(‘/<\s*img [^\>]*src\s*=\s*[\””\’]?([^\””\’>]*)/i’, $post[0]->post_content, $matches);
//YouTubeのサムネイルを取得(画像がなかった場合)
if (empty($matches[0])) {
preg_match(‘%(?:youtube\.com/(?:user/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^”&?/ ]{11})%i’, $post[0]->post_content, $match);
if (!empty($match[1])) {
$matches=array(); $matches[0]=$matches[1]=array(‘http://img.youtube.com/vi/’.$match[1].’/mqdefault.jpg’);
}
}

if (count($matches)) {
foreach ($matches[0] as $key => $image) {
//画像がイメージギャラリーにあったなら、サムネイルIDをCSSクラスに追加(イメージタグからIDを探す)
preg_match(‘/wp-image-([\d]*)/i’, $image, $thumb_id);
$thumb_id = $thumb_id[1];

//サムネイルが見つからなかったら、データベースから探す
if (!$thumb_id) {
$image = substr($image, strpos($image, ‘”‘)+1);
$result = $wpdb->get_results(“SELECT ID FROM {$wpdb->posts} WHERE guid = ‘”.$image.”‘”);
$thumb_id = $result[0]->ID;
}

//それでもサムネイルIDが見つからなかったら、画像をURLから取得する
if (!$thumb_id) {
$thumb_id = fetch_thumbnail_image($matches, $key, $post[0]->post_content, $post_id);
}

//サムネイルの取得に成功したらPost Metaをアップデート
if ($thumb_id) {
update_post_meta( $post_id, ‘_thumbnail_id’, $thumb_id );
break;
}
}
}
}
//新しい投稿で自動設定する場合
add_action(‘save_post’, ‘auto_post_thumbnail_image’);
add_action(‘draft_to_publish’, ‘auto_post_thumbnail_image’);
add_action(‘new_to_publish’, ‘auto_post_thumbnail_image’);
add_action(‘pending_to_publish’, ‘auto_post_thumbnail_image’);
add_action(‘future_to_publish’, ‘auto_post_thumbnail_image’);
/////////////////////////////////////////////
// ここまで
/////////////////////////////////////////////


 
プロフィール

ゆずまる
アフィリで稼ぐプログラマ@ゆずまる
百戦錬磨の老兵プログラマでWEBプロデューサーのゆずまるです。 大御所アフィリエイターのあの方に「あのゆずまる」とまで言わしめた、プログラマアフィリエイターの視点で、情報商材をご紹介いたします。 あなた同様「楽しく楽な高額報酬アフィリエイト」をモットウにしています。 コンピュータの専門学校の講師の経験から超初心者のあなたでもサポートばっちり♪ 安心してね? プロフィール
あなたは、ゆずまるを知らなくとも、ゆずまるは、生まれる前からあなたを知ってます。(オカルトですか?!>自分)
こんなノリでもノリで答えたりしませんから。

アフィリエイトの挫折や無料レポートのテーマ、サイトのテーマなどお悩みなどお気軽にご相談ください

 
最近の投稿

 
カテゴリー

 
最近のコメント

 
コメントについて

コメントは、各記事のこの部分↓のリンクをクリックして記事ページへ移動することでコメント欄がついたページがになります。
コメントを許可していないページもありますので、イライラしないようにお願いいたしますw
 
アーカイブ

 
コミニュケーション

 
メタ情報