themeのfunction.phpに書く
add_theme_support( 'post-thumbnails' ); set_post_thumbnail_size( 100, 100, true );
themeのfunction.phpに書く
add_theme_support( 'post-thumbnails' ); set_post_thumbnail_size( 100, 100, true );
ググったらけっこう情報古くて使えなかったので、自分用メモです。
デフォルトの設定で説明しています。
PEARの使い方とかセキュリティに関してはググってくださいw
WinXP.SP3でTera Term(ターミナルシュミレーター)を使いました。
// ダウンロード %wget http://pear.php.net/go-pear.phar // ファイル名変更 %mv go-pear.phar go-pear.php // 実行 %php go-pear.php 1. Installation base ($prefix) : /home/あなたのアカウント/pear 2. Temporary directory for processing : /tmp/pear/install 3. Temporary directory for downloads : /tmp/pear/install 4. Binaries directory : /home/あなたのアカウント/pear/bin 5. PHP code directory ($php_dir) : /home/あなたのアカウント/pear/share/pear 6. Documentation directory : /home/あなたのアカウント/pear/docs 7. Data directory : /home/あなたのアカウント/pear/data 8. User-modifiable configuration files directory : /home/あなたのアカウント/pear/cfg 9. Public Web Files directory : /home/あなたのアカウント/pear/www 10. Tests directory : /home/あなたのアカウント/pear/tests 11. Name of configuration file : /home/あなたのアカウント/.pearrc
「9.Public Web Files directory」を「/home/あなたのアカウント/www」に変更(pear/をトル)
あとは「Y」と「Enter」を押すところが1箇所づつありました。
// PEARのリスト表示 %pear list Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.7 stable Console_Getopt 1.3.0 stable PEAR 1.9.4 stable Structures_Graph 1.0.4 stable XML_Util 1.2.1 stable
以下を設定
language = "Japanese" mbstring.internal_encoding = "UTF8" mbstring.encoding_translation = Off allow_url_fopen = On allow_url_include = On file_uploads = On include_path=".:/home/あなたのアカウント/pear/share/pear"
で、動きました。
「file_get_contents」でpost送信する場合、「stream_context_create」がよく例に出てきているのですが、なぜかうまくいかなかったので、ググると、「file_put_contents」を関数にしてくれている方がいらっしゃいました。
本当に感謝です。
http://www.php.net/manual/ja/function.file-get-contents.php#80435
function file_post_contents($url,$headers=false) {
$url = parse_url($url);
if (!isset($url['port'])) {
if ($url['scheme'] == 'http') { $url['port']=80; }
elseif ($url['scheme'] == 'https') { $url['port']=443; }
}
$url['query']=isset($url['query'])?$url['query']:'';
$url['protocol']=$url['scheme'].'://';
$eol="\r\n";
$headers = "POST ".$url['protocol'].$url['host'].$url['path']." HTTP/1.0".$eol.
"Host: ".$url['host'].$eol.
"Referer: ".$url['protocol'].$url['host'].$url['path'].$eol.
"Content-Type: application/x-www-form-urlencoded".$eol.
"Content-Length: ".strlen($url['query']).$eol.
$eol.$url['query'];
$fp = fsockopen($url['host'], $url['port'], $errno, $errstr, 30);
if($fp) {
fputs($fp, $headers);
$result = '';
while(!feof($fp)) { $result .= fgets($fp, 128); }
fclose($fp);
if (!$headers) {
//removes headers
$pattern="/^.*\r\n\r\n/s";
$result=preg_replace($pattern,'',$result);
}
return $result;
}
}
ヤフー知恵袋のAPIやってたら、simple_xmlで@にアクセスする方法が分かりませんでした。
以前ヤフオクのAPIやってて、同じ問題で分からなかったので、phpserealizeを使いましたが、知恵袋はphpserializeがないので、xmlを使うことになりました。
SimpleXMLElement Object
(
[@attributes] => Array
(
[totalResultsReturned] => 2
[totalResultsAvailable] => 44597
[firstResultPosition] => 1
)
「$parsed_xml->@attributes->totalResultsReturned」や「$parsed_xml->attributes->totalResultsReturned」とアクセスしても、当然うまくいきませんでした。
$parsed_xml->attributes()->totalResultsReturned
$response = file_get_contents($url); $parsed_xml = simplexml_load_string($response);
と、するとCDATAが空です。
なので、
$response = file_get_contents($url); $parsed_xml = simplexml_load_string($response, 'SimpleXMLElement', LIBXML_NOCDATA);
第2、第3引数に「’SimpleXMLElement’, LIBXML_NOCDATA」を追加すると取得できるようになります。