サポート » テーマ » コピーしたテーマの不具合

  • 解決済 shinichi_ntrue

    (@shinichi_ntrue)


    制作完了したものをプラグインのAll-in-One WP Migrationで新しいサイトにコピーしました。
    有効化されたテーマのテーマ名を変更すると下記エラーが表示されました。
    Warning: array_diff(): Argument #2 is not an array in URL\wp-includes\widgets.php on line 1160
    更新するとエラーがでなくなったので気にせず制作を進めましたが、
    固定ページを新規作成したところ、プレビューも公開したページも
    404エラーで表示されませんでした。

    またコピー元と画像への相対パスが変わってしまいました。
    元:../test.jpg
    新:./test.jpg

    おそらくテーマ名を変更したことが原因だと思うのですが、テーマ名に戻しても404エラーは変わりませんでした。
    ちなみに変更したのは子テーマです。

    サーバーなどの環境はコピー元と同じです。

    解決方法をご教示いただけますでしょうか。

    • このトピックはshinichi_ntrueが6年前に変更しました。
6件の返信を表示中 - 1 - 6件目 (全6件中)
  • nobita

    (@nobita)

    こんにちは、

    まるっきりのアテズッポですが、

    array_diff()は、何かしらのスクリプトやスタイルの読み込みを、やめたりする場合に使うケースが多いです。例えば、絵文字を読みこまないようにしているとか、

    チャイルドテーマで、パスが変わるというやつは、親テーマのスタイルをコピーしてチャイルドテーマに貼り付けた なんて場合に起きます。

    そのような作業やっていませんか?

    トピック投稿者 shinichi_ntrue

    (@shinichi_ntrue)

    nobitaさん
    回答ありがとうございます。
    絵文字の読み込みはfunctions.phpで下記を記述しています。

    function disable_emoji() {
    remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
    remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
    remove_action( 'wp_print_styles', 'print_emoji_styles' );
    remove_action( 'admin_print_styles', 'print_emoji_styles' );
    remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
    remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
    remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
    }

    親テーマはブランクテーマでスタイルのコピーはしていません。
    子テーマ内で別のcssファイル内容をコピーして使ってはいます。

    この2つは該当する記述は削除した方がいいのでしょうか?

    nobita

    (@nobita)

    絵文字のフィルターそれだけですか?

    関数名は、わかりませんけど 以下のようなフィルター使っていませんか?

    
    add_filter( 'tiny_mce_plugins', 'disable_emojicons_tinymce' );
    
    function disable_emojicons_tinymce( $plugins ) {
    	
      if ( is_array( $plugins ) ) {// ここの部分がないと 配列じゃないよってエラーが出るかも、、、
    	  
        return array_diff( $plugins, array( 'wpemoji' ) );
      } else {
    	  
        return array();
      }
    }
    

    またコピー元と画像への相対パスが変わってしまいました。

    書き換わった原因はわかりませんが、元が、../test.jpgってことだと、チャイルドテーマのホルダーと同じ階層に、test.jpgが置いてあるってことになるのですが、ほんとにその場所に置いてあるんですか?

    トピック投稿者 shinichi_ntrue

    (@shinichi_ntrue)

    nobitaさん
    回答ありがとうございます。
    確認しましたが、そのコードは親テーマにも子テーマにもなかったです。
    また../test.jpgですが、このファイルはwordpressの初期の保存場所であるuploadフォルダです。
    (年月ベースのフォルダチェックは外しています。)
    相対パスの階層を色々試しましたがなぜか../test.jpgでしか表示されませんでした。

    nobita

    (@nobita)

    ホルダーは、upload ではなく uploads ですよね

    
    #hello-world{
        background:url(../../uploads/404.jpg);
       height:300px;
       border:1px solid;
    }
    

    投稿で、

    
    <div id="hello-world"></div>
    

    相対パスの階層を色々試しましたがなぜか../test.jpgでしか表示されませんでした。

    は、考えにくいです。wp-content/themes/あたりに該当する画像がないかどうか、FTPでチェックしてみてください。

    そのコードは親テーマにも子テーマにもなかったです。

    すみません。emojiの問題ではなさそうでした。

    エラーの発生場所確認しました。ウィジェットのエラーのようなので、

    ウィジェットのページに移動して、「使用停止中のウィジェットをクリア」を押してみて、改善しませんか?

    もしだめなら、セットしてあるウィジェットを外して、「使用停止中のウィジェットをクリア」を押して、一度ブログを開いてから、ウィジェットページに移動して、ウィジェットをセットしなおしてみて再度確認してみてください。

    • この返信は6年前にnobitaが編集しました。
    • この返信は6年前にnobitaが編集しました。
    トピック投稿者 shinichi_ntrue

    (@shinichi_ntrue)

    nobitaさん
    回答ありがとうございます。

    Wordpressの設定>パーマリンク設定で
    投稿名で選択されているのをカスタム構造にし保存するとリンクも画像の問題も解決されました。
    (保存後も投稿名に選択されたままですが)

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「コピーしたテーマの不具合」には新たに返信することはできません。