タグ: WORDPRESS

  • local by flywheel をローカルにコピーする時にエラーが出る場合

    Please try again with a compatible ZIP file のエラーメッセージが出る場合

    Please try again with a compatible ZIP file
    Please try again with a compatible ZIP fileのエラーメッセージが出る場合、まずはエラーメッセージのリンク先ページから手順を確認してやってみる。

    それでも解決しない場合はデータベースの文字コードを確認しutf8になっていないテーブルがあれば除外してみる。

    データのエクスポートには推奨されている「WP Migrate」を使用。

    時々削除したプラグインのデータベースが削除されていない場合があるので、見慣れない名前のデータベースがあれば要確認。

    Yoast や LoginLockdown Contactform7などの有名なプラグインが原因の場合もあるので注意する。

    エラーメッセージの原因を確認する

    logファイルを開き、どこでエラーが出たかを確認する。logファイルでerrorが出た場所を確認すると除外すべき項目がわかる場合がある

    投稿やカスタム投稿が原因の場合

    投稿やカスタム投稿にスクリプトなどが含まれている場合にエラーが出る場合もあるので、投稿やカスタム投稿を除外してエクスポートしてみる。

    WordPressがサブディレクトリにインストールされている場合

    本番環境のWordpressがサブディレクトリにインストールされている場合は.htaccessが適正に吐き出されていない場合がある。Publicディレクトリにhtaccessファイルがあるかを確認し、なければローカルに作った他のサイトのファイルをそのままコピーして貼り付ける。

    また、サブディレクトリが作られていない場合もあるので、その場合は手動で作成しPublic の中身をサブディレクトリに移動。

    index.phpだけはPublic直下に移動し、/サブディレクトリ/wp-blog-header.php’ に書き換えて保存。

    Local by flywheel でサイトを停止、再起動すれば動作する。

  • WordPress カレンダー 土日を非表示にする方法

    WordPressのデフォルトカレンダーで土日を非表示にしたいという場合に、CSSだけで非表示にするコード

    
    table#wp-calendar tr:first-child td:nth-last-child(1) {
      display:none;
    }
    table#wp-calendar tr:first-child td:nth-last-child(2) {
      display:none;
    }
    #wp-calendar td.pad {
      line-height:0;
    }
    table#wp-calendar tr th:nth-child(6) {
      display:none;
    }
    table#wp-calendar tr td:nth-child(6) {
      display:none;
    }
    table#wp-calendar tr th:nth-child(7) {
      display:none;
    }
    table#wp-calendar tr td:nth-child(7) {
      display:none;
    }
    

    まず、第一週ははじまる曜日によってtdの数が異なる。例えば金曜日がその月の1日の場合、月曜日から木曜日は td.pad となりひとつの td としてコードが吐き出される。

    それで、nth-last-childをつかって、後ろから1番目と2番目、を指定して非表示にする。

    ただし、土曜日がその月の1日の場合、一行何も表示しないまま、td.pad が高さを維持してしまうため、 #wp-calendar td.pad のline-height:0; を指定。

    第二週目以降はnth-childで6番目と7番目を指定して非表示にする。

    最終週は終わる曜日によってtdの数が異なるが、この場合はcssが効かなくても問題ない。

    以下まとめて書くと次のようになる。

    WordPress カレンダーで土日を非表示にするコード

    table#wp-calendar tr:first-child td:nth-last-child(1),
    table#wp-calendar tr:first-child td:nth-last-child(2),
    table#wp-calendar tr th:nth-child(6),
    table#wp-calendar tr td:nth-child(6),
    table#wp-calendar tr th:nth-child(7),
    table#wp-calendar tr td:nth-child(7) {
      display:none;
    }
    #wp-calendar td.pad {
      line-height:0;
    }
    
  • Custom Post Type UI  データを完全に削除

    Custom Post Type UI で一度作成したカスタム投稿をCustom Post Type UI 管理画面から削除しても関連するデータが削除されるわけではない。

    同じ名前でカスタム投稿を作成すればすべてが復活する。

    wp_term_relationshipsなども含めて、指定したカテゴリーやタームなどの情報など、データを完全に削除するには、そのカスタム投稿の一覧から投稿を削除する必要がある。

    ただし、投稿数が多い場合はプラグインを使うのが手っ取り早い。

    Bulk Delete

  • WordPress ニュースなどを年別で1ページにリスト表示するコード

    ニュース一覧ページなどで、

    「2022年」の見出しの後に2022年のニュースタイトル一覧、「2021年」の見出しの後に2021年のニュースタイトル一覧….. という風に1ページでアーカイブページを完結させたいという場合に便利なコード。

    hs2 news

  • amCharts: Charts and Maps プラグインの使い方

    https://www.amcharts.com/docs/v4/tutorials/using-amcharts-wordpress-plugin/

    マップやチャートをショートコードを使って簡単にwordpressに挿入できるamCharts: Charts and Maps

    使い方の日本語解説が少ないためメモ。

    プラグインで使えるマップやチャートをDEMOで確認する

    https://www.amcharts.com/demos-v4/

    執筆時点ではV4のみ対応。

    やりたいことは、Location-sensitive map の世界地図バージョン。

  • php n番目のループや倍数で表示内容を変える方法

    1.ループの数を数える

    以下のようにforeach の前後に数を数えるコードを挿入

    $counter = 0;
                            foreach ($rows as $row) { ....
    
    $counter++;

    2.if文で値を出し分ける

    <?php if ($counter == 1) {//1回目のループ
     echo '表示内容">'; }?>
    
    
    
    <?php if ($counter == 12) {//12回目の表示
     echo '表示内容'; }
     elseif (($counter % 4) == 0) {//12回目以外で4の倍数
     echo '表示内容
    '; }?>
    
    

    上記のコードで4の倍数ごとに<div>を挿入する等が可能になる

  • WordPress ターム・タクソノミー関連の便利なコード

    その投稿が属するタームの名前とリンクを取得

               <?php
                 $terms = get_the_terms($post->ID,'タクソノミー名');
                 foreach( $terms as $term ) {
                  $term_id = $term->term_id; // タームID
                  $term_name = $term->name; // 名前
                  $term_slug = $term->slug; // スラッグ
                  $term_group = $term->term_group; // タームグループ
                  $term_order = $term->term_order; // タームオブジェクト
                  $term_taxonomy_id = $term->term_taxonomy_id; // タームタクソノミーID
                  $term_taxonomy = $term->taxonomy; // タクソノミー
                  $term_description = $term->description; // ディスクリプション
                  $term_parent = $term->parent; // 親
                  $term_count = $term->count; // カウント
                  $term_object_id = $term->object_id; // オブジェクトID
                 }
                ?>

    その投稿が属するタームをリンク付きで出力

                                <?php
                                $terms = get_the_terms($post->ID, 'タクソノミー名');
                                if ( $terms ) {
                                	foreach ( $terms as $term ) {
                                		echo $term->name;
                                	}
                                } ?>
  • WordPress ユーザー権限毎にエクスポートできるプラグイン

    User Export (with their Meta Data)

    ユーザー権限毎にユーザー情報をエクスポートできる便利なプラグイン

  • WordPress ページ速度向上のためにできること

    サイトスピードを向上させるために・・・・

    JSを圧縮

    https://syncer.jp/js-minifier

    CSSを圧縮

    http://www.creativyst.com/Prod/3/

    Jqueryはホスト化されたものを使う

    https://developers.google.com/speed/libraries/#jquery