wp_insert_postを用いてカスタムフィールドの値も表示させる方法
-
現在以下のコードを用いて誰でも投稿可能なインタフェースを作成しています。
<?php
/*
Template Name: テスト
*/
?><!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html lang=”ja”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
</head>
<body>
投稿が完了しました。
承認されるまで、しばらくお待ちください。<?
//フォームの内容を変数に格納
$post_category = $_POST[“category”];
$post_title = $_POST[“title”];
$post_contents = $_POST[“contents”];
$tags_input = $_POST[“tags”];//投稿
$postarr = array();
$postarr[‘post_status’] = ‘publish’;
$postarr[‘post_type’]=’post’;
$postarr[‘post_author’]=’2′;
$postarr[‘post_category’] = array($post_category,);
$postarr[‘post_title’] = $post_title;
$postarr[‘post_content’] = $post_contents;
$postarr[‘tags_input’] = array($tags_input,);
//投稿ID
$post_id=wp_insert_post($postarr);//アップロードするディレクトリとファイルを設定
$filename=basename($_FILES[‘pict01’][‘name’]);
$filename=trim($filename);
$filename=ereg_replace(” “, “-“, $filename);
$upload_dir_var=wp_upload_dir();
$upload_dir=$upload_dir_var[‘path’];
$uploaddir=realpath($upload_dir);
$uploadfile=$uploaddir.’/’.$filename;//ファイルを uploadfileにfilenameでアップロードする
if ($_FILES[“pict01”][“size”] === 0){
//echo “ファイルはアップロードされてません!! アップロードファイルを指定してください。”;
}else {
$result = @move_uploaded_file( $_FILES[“pict01”][“tmp_name”], $uploadfile);
if ($result === TRUE ){
//echo “アップロード成功!!”;
}else{
//echo “アップロード失敗!!”;
}
}//ファイルタイプ
$typefile=$_FILES[‘pict01’][‘type’];
//ファイル名の拡張子なし
$slugname=preg_replace(‘/\.[^.]+$/’, ”, basename($uploadfile));//アップロードファイルがある場合、以下実行
if ( file_exists($uploadfile) ) {
//拡張子をチェックする
$exten = ”;
if ( $typefile == ‘image/jpeg’ ) { $exten = ‘jpg’; }
elseif ( $typefile == ‘image/png’ ) { $exten = ‘png’; }
elseif ( $typefile == ‘image/gif’ ) { $exten = ‘gif’; }
if($exten == ”){
//echo ” file type error. You can upload jpg, png, gif “;
}//アップロードファイルを添付する
$attachment = array(
‘post_mime_type’ => $typefile,
‘post_title’ => $slugname,
‘post_content’ => ”,
‘post_status’ => ‘inherit’
);
$attach_id = wp_insert_attachment( $attachment, $uploadfile, $post_id );require_once(ABSPATH . “wp-admin” . ‘/includes/image.php’);
$attach_data = wp_generate_attachment_metadata( $attach_id, $uploadfile );
wp_update_attachment_metadata( $attach_id, $attach_data );//ファイル添付が完了したら
if($attach_id != 0){
//post_idの投稿に画像を反映させる処理
$img_src = wp_get_attachment_url($attach_id);
wp_update_post( array(
‘ID’ => $post_id,
‘post_content’ => $postarr[‘post_content’]. ‘<img src=”‘.$img_src. ‘” >’
) );
//投稿の更新が成功した場合は投稿 ID。失敗した場合は 0。
}else{
//echo “error attach “;
}} // fin if file_exists
?>
</body>
</html>これに更に「ハンドルネーム」や「年齢」の値を付与して表示させたいです。
※カスタムフィールドを利用するのでは…と考えています。お力お貸し頂けますと幸いです。
- トピック「wp_insert_postを用いてカスタムフィールドの値も表示させる方法」には新たに返信することはできません。