shirakobato
フォーラムへの返信
-
フォーラム: プラグイン
返信が含まれるトピック: オリジナル画像アップローダプラグインを作成したいこんばんは。
>まずは$filelistの戻り値がFALSEでないことを確認しましょう。
すいません、確認方法がわかりません。。。
どのようにして確認すればいいのでしょうか?以下をイメージしています。
$filelist=scandir($dir); if ($filelist) { ディレクトリが存在するためアップロード処理 } else { ディレクトリが存在しないため、エラー処理 }
1.画像のアップロード先を下記にしたいです。
プラグインディレクトリ>image
試したこと→$dir = plugin_dir_path(__FILE__).’image’;
結果→エラーメッセージはでないがアップロードもされず。;$dir の内容は「home/users/2/アカウントネーム/web/ドメイン/demo/wp/wp-content/plugins/image-upper02/image」のようなので問題ないと思います。
$dir の末尾に「/」がないため、$dir と $upfileの間に「/」をつける必要があります。
以下のようにしてもアップロードできませんか?
move_uploaded_file($_FILES["image"]["tmp_name"],$dir.'/'.$upfile);
nobitaさんが心配される点はもっともです。
今回のプラグインを一般公開する予定ならば仕様から見直す必要があると思います。
特定のユーザだけに公開する場合は、ログイン状態やロールによる制限の他、IPアドレスによるアクセス制限も一つの方法です。
それらを考慮しない状態では悪意を持つ第三者に細工されたjpgを置かれ、他のユーザに迷惑をかける可能性があることを忠告しておきます。
(ディレクトリパスを見ると、共用サーバですよね?)フォーラム: プラグイン
返信が含まれるトピック: オリジナル画像アップローダプラグインを作成したいまずは$filelistの戻り値がFALSEでないことを確認しましょう。
手動でimageディレクトリを削除した場合の処理のためにもエラー処理は必要です。
エラーの場合はエラー復帰するか、imageディレクトリを作成する処理が必要と思います。
※ mkdirでディレクトリが作成できます。おそらくimageディレクトリの場所が表示URL配下になっているのでしょう。
$dirの内容を/からのパスにして、どのURLから実行しても固定パスになるようにする必要があると思います。
プラグインディレクトリの取得にはplugin_dir_pathが使用できると思います。move_uploaded_file($_FILES[“image”][“tmp_name”],”image/”.$upfile);
こちらは「/」が必要です。
エラーが消えたのは、imageディレクトリ配下ではなく、「imageimages.jpg」というファイル名で処理を行ったためです。フォーラム: プラグイン
返信が含まれるトピック: オリジナル画像アップローダプラグインを作成したいこんばんは。
“image/”ディレクトリがオープンできていないようです。
Warning: scandir(image/) [function.scandir]: failed to open dir: No such file or directory in on line 47
scandirは成功した場合にファイル名の配列、失敗した場合に FALSE を返します。
そのため、$filelistの判定が必要です。scandirの使用例を見ると”image/”の「/」がありません。
$dir にファイル名を結合している様子もないため、「/」は不要ではないかと思います。はじめまして
以下の末尾に「;」がありません。
get_template_part('content2')
フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿単一記事ページのmetaタグだけ特定のコードを入れるはじめまして
一番最初のコードを見ると、else if { に対する } が無いため、「BBB」の時だけwp_headの呼び出しや、</head>の出力をしているように見えます。
正しく動作していたコードなのでしょうか?<?php } else if ( is_post_type_archive('BBB') ) { // カスタム投稿アーカイブページ ?> <?php ?> <?php wp_head(); ?> </head>
フォーラム: 使い方全般
返信が含まれるトピック: 投稿ごとにテンプレを分ける方法そうですね。
最初は私もsingle-$slag.phpの使用を思いました。
個人的には、nobitaさんのおっしゃる通りで、私もsingle-$slag.phpを使用しています。しかし、念のため調べてみると
Codexのテンプレート階層にはsingle-$slag.phpの記述がない
のです。
また、in_category関数の用例でmountodさんの2番目のコードに近い用例が出ているため、慣例で使用されているが、正式な機能ではないのでは? と思いました。codexが常に最新であるとは思いませんが、正式なドキュメントに記述されている内容に従って回答しています。
フォーラム: 使い方全般
返信が含まれるトピック: 投稿ごとにテンプレを分ける方法初めまして。
通常の投稿にはsingle.php
特定の投稿にはsingle-sp.phpを使いたいと思っていました。single.phpは通常、特定共通で呼び出されるテンプレートファイルです。
そのため、
通常の場合も専用PHPファイル(例えばsingle-normal.php)を用意して、single.phpの内容を下記のようにすればループしないと思います。
2番目のコードでは通常時に何も処理しないようになります。<?php $post = $wp_query->post; if ( in_category('8') ) { include(TEMPLATEPATH . '/single-sp.php'); } else { include(TEMPLATEPATH . '/single-normal.php'); } ?>
また、single.php内の一部だけカテゴリ別の処理を行いたいという場合は質問の通り、single.php内でカテゴリを判定すれば良いと思います。
フォーラム: 使い方全般
返信が含まれるトピック: 記事をまとめる方法についてのアドバイスがほしいこんばんは。
未検証ですが、私が考えた方法をご紹介いたします。
- まとめ用のカスタム投稿タイプを作成する
- カスタム投稿タイプにまとめを行う記事数だけカスタムフィールドを作成する
- カスタム投稿のカスタムフィールドにまとめを行う対象の記事のpost_idを入力する
- カスタム投稿の表示用テンプレートでカスタムフィールドに存在するpost_idの投稿を取り出し、タイトルをhタグに、本文をその下に表示するようにする
具体的なコードはお調べください。
フォーラム: 使い方全般
返信が含まれるトピック: 致命的なエラー:未定義関数set_screen_options()への呼び出し ライン91こんばんは。
WordPressを更新して完了後に
このフォーラムに質問されている他の例を見ると、更新が「完全に」完了していない可能性があります。
まず、ftpなどで更新してはいかがでしょうか?nobitaさんが指示されている情報の他、どのバージョンからどのバージョンにどのように更新したかがあると、より具体的な原因や回答を得られると思います。
また、同様のトラブルが発生している方のためにもサーバ名・プラン等をお教えください。フォーラム: 使い方全般
返信が含まれるトピック: カスタムフィールド値の中の改行で出力時に文字数制限が効かなくなるこんばんは。
自分なりに調べて、
$str = str_replace(array(“\r\n”,”\r”,”\n”), ”, $str);
と入れてみたのですが、やはりエラーになってしまいました。。str_replaceを見ると、
(正規表現のような) 技巧的な置換ルールを必要としない場合、 preg_replace() の代わりにこの関数を常用するべきです。
とあるため、方向性は正しいと思います。
未検証ですが、「例1 基本的な str_replace() の例」の2番目の例が近いと思いました。
// Hll Wrld f PHP となります $vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U"); $onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
気になるのは、置き換えに使用する第2パラメータは「”」ではなく、「””」を使用しています。
フォーラム: インストール
返信が含まれるトピック: データベース接続確立のエラーこんばんは。
もしかして、MySQLが4.0.26だと、そもそも動かないということはありますか?
現在のWordPress 日本語版の動作環境は以下となっています。
- PHP バージョン 5.2.4 以上
- MySQL バージョン 5.0 以上
※ PHPの動作環境は5.2.4以上ですが、以下のバージョンには脆弱性があるためお勧めできません。
PHP version 5.4.3 より前のバージョン
PHP version 5.3.13 より前のバージョンフォーラム: インストール
返信が含まれるトピック: データベース接続確立のエラーこんばんは。
追加回答書き込みが遅れたため、結果として回答の順序が前後してしまい、申しわけありません。
サーバーは、EUC-JPしか設定できませんでした。
wp-config.php の編集に他のデータベース・キャラクタセットを使用した際の説明があります。
フォーラム: インストール
返信が含まれるトピック: データベース接続確立のエラー追加です。
wp-config.php を編集した場合、DB_CHARSETで指定した文字コードで保存する必要があります。
※UTF-8の場合UTF-8 BOM なし(UTF-8N)で保存します。それらを含めたインストール方法は、WordPress_のインストールを参考にしてください。
フォーラム: インストール
返信が含まれるトピック: データベース接続確立のエラーこんばんは。
UTF-8はunicodeのコード重複範囲で互換性がある文字セットで、Fedora系OSの標準日本語文字コードです。
そのため、お使いになられているサーバの日本語セットに従った文字コードで設定した方が良いという意味で、UTF-8をお勧めしました。
サーバの日本語環境が他の文字コード(EUC-JP等)でしたら、そちらをセットした方が良いでしょう。私の環境ではOS・PHP・MySQLを統一し、内部で文字コード変換が起きにくくしているため、以下を指定しています。
/etc/php.ini
default_charset = "UTF-8" [mbstring] mbstring.language = Japanese mbstring.internal_encoding = UTF-8
MySQLのサーバ接続の照合順序
utf8_general_ci
そのため、wp-config.phpは以下としています。
/** データベースのテーブルを作成する際のデータベースの文字セット */ define('DB_CHARSET', 'utf8');
フォーラム: インストール
返信が含まれるトピック: データベース接続確立のエラーこんばんは。
これまでにやったこと。
1.データーベース作成(UNCODE)
2.wp-config.php作成(データベース名、ユーザー名、パスワード、認証用ユニークキー)
3.パーミッション変更(フォルダ757)1.でUNICODEのデータベースを作成した場合、2.を行う際の文字コードもUNICODEで行わなくてはならないのでは?
データベースの文字コードと設定ファイルの文字コードが一致していない場合、認証に失敗してデータベース接続確立エラーとなります。
お勧めはデータベース、PHPファイルともUTF-8で作成することです。また、この問題には関係ないですが、3.パーミッション変更(フォルダ757)を行うと、誰にでもそのフォルダにファイルを置かれる可能性があるため、特別な理由がない限りお勧めできません。