フォーラムへの返信

15件の返信を表示中 - 1 - 15件目 (全477件中)
  • パット見た感じでは

    if ($count==”) {

    の文字列が空という判定部分がダブルクォーテーションが1つで文法間違いになっています。

    if ($count=="") {
    あるいは
    if (empty($count)) {
    あたりを使ってみてはと思います。

    http://◯◯/test/ にURL変更したなら、ご指摘のとおり、 RewriteBaseとRewriteRule 部分の変更が必要ですが、今回は URL変更はないということでしたね。

    ただURL変更がないにも関わらず
    public_html/test/ フォルダ以下にいれると、 http://◯◯/test/ と認識されませんか。
    つまり 移行したサーバー側の http://◯◯/ へのアクセスはどのフォルダを見ているのか確認してみてください。
    それが public_html であるなら、そこ直下にWordPressファイルを置く必要があります。
    これを test 以下においた上で、 http://◯◯/ としてアクセスさせたいなら、

    https://wpdocs.osdn.jp/WordPress_%E3%82%92%E5%B0%82%E7%94%A8%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AB%E9%85%8D%E7%BD%AE%E3%81%99%E3%82%8B
    の「既存のサブディレクトリを使ってルートディレクトリに表示する場合」でしょうが、その前に上記サーバー側で http://◯◯/ がどのフォルダを見ているのかのチェックが重要です。

    フォーラム: プラグイン
    返信が含まれるトピック: BackWPupでバックアップ実行時にエラーが発生する

    > ・エラー: Allowed memory size of 268435456 bytes exhausted (tried to allocate 199229472 bytes)

    とりあえず、PHPのメモリ上限が 256MBあたりで、その限界を超えたというエラーがあります。
    JetBOYの公式サポートサイトにある、php.iniの値を変更する方法を参考に

    memory_limit = 256M

    の memory_limit の値をもう少し上げることが可能なら、あげてみてはと思います。

    memory_limit = 512M

    どこまでが限界かは、JetBOY側にきいてみてはと思います。

    フォーラム: 使い方全般
    返信が含まれるトピック: WPからダウンロードしたファイル名を指定したい

    1./wp-content/plugins/wp-multibyte-patch/wpmp-config-sample-ja.php を/wp-content/ 直下にコピー
    2.コピーした、wpmp-config-sample-ja.phpを wpmp-config.phpというファイル名に変更

    上記までは問題ないということでしょうか。

    また、
    $wpmp_conf[‘patch_sanitize_file_name’]
    上記について、シングルクォーテーションが、違う文字になっている可能性があります。
    ウェブからコードをコピーすると上記のようにおかしくなる場合があります。
    まずは確実に、シングルクォーテーションかどうか確認してみるのがよいかなと思います(手動で入力し直すなど)。
    $wpmp_conf['patch_sanitize_file_name']

    フォーラム: 使い方全般
    返信が含まれるトピック: WPからダウンロードしたファイル名を指定したい

    日時は、WordPress 仕様です。
    メディアによってアップロードされたファイルは、年月のフォルダにわけて保存されます。
    これを変更する場合には、WordPress の管理画面より 設定 > メディアにある「アップロードしたファイルを年月ベースのフォルダに整理」のチェックをオフすることです。

    ただし、すでにアップロードしたものは変更できないと思います。
    すでにアップロードされたものは、.htaccess が利用できるなら、リダイレクト(転送)などをつかうか、再度登録し直す(消してアップロードしなおして、登録しなおす)必要があります。

    すでにアップロードしたものは駄目ですが、新規でアップロードしたものについては文字化けしないはずです。
    ただ利用しているシステム(他のプラグイン等)によって駄目な場合もあるかもしれませんので、可能ならテスト環境を構築(WordPressのデモサイト、あるいは同じサイトのクローンとか)してテストしてみるのがよいかと思います。

    フォーラム: 使い方全般
    返信が含まれるトピック: WPからダウンロードしたファイル名を指定したい

    WP Multibyte Patch プラグインがインストールされていませんか。

    入っていない場合には、分かりませんが、もしインストールされていて有効の場合、
    https://highfivecreate.com/blog/wordpress/5936.html#i-2
    などにあるように、日本語等マルチバイトのファイル名は、トラブルを避けるために MD5 ハッシュ化されたファイル名になります。

    おそらくはマルチバイトの場合、
    https://runebook.dev/ja/docs/wordpress/functions/sanitize_file_name
    などにあるように WordPress における安全なファイル名にするためのサニタイズが効果がなくなってしまうセキュリティ的な問題(あるいは意図しない動作をする)でそうしているのかもしれません。

    その辺のリスクは自己責任でということなら
    下記を参考にこのプラグインのファイル名の変換機能(サニタイズ)を無効化しておくのがよいかと思います。
    https://webjin.work/how-to-upload-the-file-name-of-the-japanese-in-wordpress/

    すでに示されているフックを使って処理することになります。
    それがわからない場合、何かあった場合に対処できなくなるので、このフックについてまずは勉強してみるのがよいかと思います。
    参考サイト
    https://coosy.co.jp/blog/wordpress-hook/
    https://syncer.jp/Web/WordPress/Reference/Function/apply_filters/

    また Contact Form 7 側の正式ヘルプは下記の通りです。
    https://contactform7.com/2015/03/28/custom-validation/

    で、
    https://ja.wordpress.org/support/topic/contact-form-7でメールアドレスのチェックを厳格にしたい/#post-226741
    のリンク先の解決事例のコードをまず読み解くところからしてみます。
    少しリンク先のコードは修正します。

    まずコードは、テーマの functions.php の一番下に追加するという形になります。

    Contact Form 7 は用意したフィルタ「wpcf7_validate_email」と「wpcf7_validate_email*」に対して、wpcf7_text_validation_filter 関数を実行するようにしています。

    modules/text.php:add_filter( ‘wpcf7_validate_email’, ‘wpcf7_text_validation_filter’, 10, 2 );
    modules/text.php:add_filter( ‘wpcf7_validate_email*’, ‘wpcf7_text_validation_filter’, 10, 2 );

    wpcf7_text_validation_filter 関数は、modules/text.phpにあるので、ここでエラーに関するメッセージをだしています。これが参考にする根底の部分です。

    で 「wpcf7_validate_email」と「wpcf7_validate_email*」の意味は、 Contact Form 7におけるタグの違い([email] か [email*] の違い)ということになります。つまり [text] に対してチェックをいれたければ、wpcf7_validate_text を指定せよということですね。

    add_filter(‘wpcf7_validate_email’, ‘wpcf7_validate_email_reject_nonrfcmail’, 11, 2);
    add_filter(‘wpcf7_validate_email*’, ‘wpcf7_validate_email_reject_nonrfcmail’, 11, 2);

    のように記述します。 11 は優先順位であり、デフォルトは10が指定されています。数が多いほうが後から実行されるということです。次の 2 については関数の引数は2つだよという宣言です。
    実際に、wpcf7_text_validation_filter 関数も引数は2つですし、それに合わせて下記の関数も引数を2つにします。

    あとは、$email にメールアドレスが入りますので、条件を分けてください。
    どう分けるかは、is_emailを参考にすればよいでしょう。ただしエラーメッセージの表示は
    $result->invalidate ($tag, “エラーメッセージの内容”);
    となるので、そこだけ気をつければ良いです。

    となると下記のようなコードになるかなぁとは思います(add_filter部分含む)。

    add_filter('wpcf7_validate_email', 'wpcf7_validate_email_reject_nonrfcmail', 11, 2);
    add_filter('wpcf7_validate_email*', 'wpcf7_validate_email_reject_nonrfcmail', 11, 2);
    
    function wpcf7_validate_email_reject_nonrfcmail($result,$tag){
        $tag = new WPCF7_FormTag( $tag );
    
        $email = isset($_POST[$tag->name]) ? trim($_POST[$tag->name]) : '';
    
        if ( strlen( $email ) < 6 ) {
    	$result->invalidate ($tag, "エラーメッセージの内容");
        }
        if ( strpos( $email, '@', 1 ) === false ) {
    	$result->invalidate ($tag, "エラーメッセージの内容");
        }
        // あとは is_email の条件を追加していく
    
        return $result;
    }
    • この返信は4ヶ月、 1週前にkimipoohが編集しました。
    • この返信は4ヶ月、 1週前にkimipoohが編集しました。

    https://kinsta.com/jp/knowledgebase/installation-failed-could-not-create-directory/
    などにあるように、WordPress をインストールしているサーバーの容量が足りているか確認してみてください。

    もし容量が十分にあいていて作成できないのであれば、一度サーバーの運営に聞いてみるのがよいです。

    2つのコードは同一の処理をしていないので、意図と違うことになるのは当然だろうとは思います。

    やりたいこと
    1.ログインユーザーとACFの値(ユーザー)が一致したとき、ログインユーザー名を出力
    2.管理者の場合、この条件分岐は除外(全コンテンツ表示)

    これをしたい場合で、かつ「管理者かどうか」を最初に条件判定させたい場合には

    1. 管理者じゃない場合
     ログインユーザーとACFの値(ユーザー)が一致
      ログインユーザー名を出力
    2. それ以外(管理者の場合)
     ログインユーザー名を出力

    としないといけないのに、実際のコードについては
    1. 管理者じゃない場合
     ログインユーザーとACFの値(ユーザー)が一致
      ログインユーザー名を出力
    2. それ以外(管理者の場合)
     処理しない(出力しない)

    となっています。
    これコードをみているだけでは気づけ無いのであれば、上記のように言葉で丁寧に書いてみる必要があります。
    このあたりを怠ると意図したことになっていない可能性(抜けてしまっている)が生じるためです。
    ですので、

    2. それ以外(管理者の場合)
     ログインユーザー名を出力

    を追加すればよいようには見えますね。

    • この返信は4ヶ月、 2週前にkimipoohが編集しました。

    そのアップロードしたとき、
    string(70) “WordPress recognizes that the file type is [application/octet-stream].”
    などのエラーも出てきませんか。これが、 WordPress が認識したアップロードしたファイルの MIMEタイプになります。先程の JWWもこれでチェックしました。

    その条件であれば、最後のコードで問題ないはずです。
    まずはPHPやウェブサーバーのログで何かエラーが出ていないか確認してみてください。
    また
    https://wp.go-sign.info/how-to-enable-wordpress-debug-mode/
    などを参考に WordPressの Debugを有効にしておくのもよいです。

    気になる点としては、最後のコードについて if を閉じる endif が一つ不足しています。
    最後のコードを <?php 等ややこしいところは全部取っ払うと下記のようになります。

    $user = get_field('username');
    $loginuser = wp_get_current_user()->display_name;
    if($user['display_name'] === $loginuser):
      *ここで出力
    else:
      if(current_user_can( 'administrator' ) ) :
       *ここで出力
      endif; 

    つまり

    //ログインユーザー=ACFの値が一致したとき
    <?php 
    $user = get_field('username');
    $loginuser = wp_get_current_user()->display_name;
    if($user['display_name']=== $loginuser):
    ?>
    <h3><?php echo $loginuser; ?></h3> //コンテンツ
    
    //上記以外で管理者権限のとき
    <?php else:?>
    <?php if(current_user_can( 'administrator' ) ) :?>
    <h3><?php echo $loginuser; ?></h3> //コンテンツ
    <?php endif; ?>
    
    <?php endif; ?>

    にしないと駄目ということですね。

    http://sakuzu.morikei.net/anexcise/anexcise.html
    あたりからサンプルデータをダウンロードして、すでにお伝えしている下記の方法で調べました。

    https://ja.wordpress.org/plugins/wp-add-mime-types/
    上記のFAQにある「メディアからアップロードしたファイルの種類を確認する方法」を参考にしてみてください。

    結果としては application/octet-stream と認識したので、下記の設定をすればアップロード可能なはずです。

    jww = application/octet-stream

    Welcart が PHP7以上でないと動作しなくなっており、
    さくらサーバーで PHP7にできないのであれば、
    usces_is_login
    が使えないということになります。

    Welcartプラグインが不要だということであれば、
    そもそも header.php のusces_is_loginも不要だということかもしれません。
    そこはテーマについて、
    https://www.welcart.com/about/
    にあるものを使っているなら、そちらに聞いてみるのが良いかなと思います。
    *その関数があることが前提で何か処理をしているわけで、そこの全容がわからないことには修正できないためです。

    最後にお示しのコードはやりたいことが、これまでのコードと変わっています。
    これらを自然言語で書き出すと次のようになります。

    従来
    管理者ではない場合に限定して
    ACFのユーザー名 と ログインしているユーザが一致するなら、
    ログインユーザー名を出力

    最後のコード
    1. ACFのユーザー名 と ログインしているユーザが一致する場合、
       ログインユーザー名を出力
    2. 一致しない場合、かつ管理者である場合
       ログインユーザー名を出力

    従来は、管理者でない場合に限定していますから、「2」は対象外だったということになります。
    つまり、従来のコードであれば管理者だといかなる場合も出力しないということになっています。

    そのため、まずは何をしたいのかを言葉で書き下すところからやってみるのが良いと思います。

    たとえば最後のコードで、管理者かどうかを先に判定したいなら
    1. 管理者の場合
      ACFのユーザー名 と ログインしているユーザが一致しない場合
         ログインユーザー名を出力
    2. 管理者でない場合
      ACFのユーザー名 と ログインしているユーザが一致する場合、
         ログインユーザー名を出力

    となります。ただ、あまりコードの整理はできているわけじゃないので、再度のコードで十分のような気もします。
    きになるのは、管理者の場合、一致しなくても出力してもいいのではないかなぁとは思います。ただこのあたりは、どういう意図をもってやりたいのかわからないので、あくまで感想ではあります。

    なぜ停止されたのか状況は分かりませんが、
    念の為バックアップをとった上で、Welcartプラグインを更新する。すでに最新版であれば、一旦削除してインストールしなおしてみるとよいかなと思います。

15件の返信を表示中 - 1 - 15件目 (全477件中)