WordPressの集中執筆モードをデフォルトでOFFにする方法

Filed under: functions.php,wordpress — kdcs @ 2025年2月28日 金曜日

投稿記事を書く時、通常の運用では集中執筆モードがデフォルトでオンになっており、表示オプションで集中執筆モードのチェックを外してオフにしても次にログインするとオンに戻ってしまう。
これをデフォルトではオフの状態にする方法。

functions.php
その1(こちらの方が記述がシンプル)
このコードは、エディターの自動拡張を無効にします。

function disable_editor_expand() {
    if ( is_admin() ) {
        wp_add_inline_script(
            'wp-blocks',
            'wp.data.dispatch("core/edit-post").removeEditorPanel("editor-post-publish-panel");'
        );
    }
}
add_action('admin_enqueue_scripts', 'disable_editor_expand');

その2(ログインするたびにオフにする記述)

/* ---------------------------------------------------------------------------------------
   ◆◆◆ 集中執筆モードをデフォルトでOFFにする ###########################################
------------------------------------------------------------------------------------------*/
function do_disable_editor_expand( $user_id ) {
    global $wpdb;
    $meta_key = $wpdb->prefix . 'user-settings';
    $_prev_user_settings = get_user_meta( $user_id, $meta_key, true );
    $_user_settings = explode( '&', $_prev_user_settings );
    $_is_override = false;

    foreach( $_user_settings as $_i => $_buff ) {
        list( $_key, $_val ) = explode( '=', $_buff );
        if ( 'editor_expand' === $_key ) {
            $_val = 'off';
            $_is_override = true;
        }
        $_user_settings[$_i] = $_key . '=' . $_val;
    }

    if ( ! $_is_override ) {
        $_user_settings[] = 'editor_expand=off';
    }

    update_user_meta( $user_id, $meta_key, implode( '&', $_user_settings ), $_prev_user_settings );
}

function custom_login_redirect( $redirect_to, $requested_redirect_to, $user ) {
    if ( ! is_wp_error( $user ) ) {
        global $user;
        if ( isset( $user->ID ) ) {
            do_disable_editor_expand( $user->ID );
        }
    }
    return $redirect_to;
}
add_filter( 'login_redirect', 'custom_login_redirect', 10, 3 );

function custom_user_register( $user_id ) {
    do_disable_editor_expand( $user_id );
}
add_action( 'user_register', 'custom_user_register' );

datepicker 2025年版(毎週〇曜日、第〇・第〇・第〇 曜日)

Filed under: JavaScript — kdcs @ 2025年1月30日 木曜日

datepickerで第1・第3・第5など、毎週ではない休みを選択できないようにする記述。
追加(2025.1.31)指定した日付も選択できないようにするように変更

例は、翌日(明日から)2か月間選択可能で毎週木曜日と第1・第3・第5水曜日が定休日の場合

$(function() {
// 休日の指定
var disabledDates = ["2025-01-01", "2025-01-02", "2025-01-03"];

$('#calendar').datepicker({
    showOn: 'button',
    buttonImageOnly: true,
    buttonText: 'カレンダーから選択',
    buttonImage: 'https://fujita-megane.com/wp-content/themes/fujita-h2021s/images/ico_calendar.png',
    minDate: '1d', //明日から
    maxDate: '+2m', //2ヶ月間(約60日)が選択可能範囲
    dateFormat: 'yy年mm月dd日(D)', //年-月-日(曜日)

    beforeShowDay: function(date) {
        var day = date.getDay();
        var dateString = $.datepicker.formatDate('yy-mm-dd', date);
        var dateOfMonth = date.getDate();
        var weekOfMonth = Math.ceil(dateOfMonth / 7);
        // 木曜日かどうかをチェック
        if (day === 4) {
            return [false, "", "定休日です"];
        }
        // 水曜日かどうかをチェック(第1・第3・第5水曜日)
        if (day === 3 && (weekOfMonth === 1 || weekOfMonth === 3 || weekOfMonth === 5)) {
            return [false, "", "定休日です"];
        }
        // 指定した日付を選択できないようにする
        if (disabledDates.indexOf(dateString) !== -1) {
            return [false, "", "この日は選択できません"];
            }
            return [true, ""];
        }
    });
});

WordPress内jQueryのバージョン情報

Filed under: JavaScript,wordpress,未分類 — kdcs @ 2024年9月17日 火曜日

WordPressとjQueryのバージョン
※基本的にテーマをカスタマイズしているのでWordPress内部のjQueryは使用しない。

jQueryは公式からダウンロードするかcdnjsやgoogleなどから取得する
【cdnjs】
jQueryはこちら
jQuery-migrateはこちら

WordPress バージョン jQuery バージョン migrate リリース日
6.4 3.7.1 3.4.1 2023/11/07
6.3 3.7.0 未調査 2023/08/08
6.2 3.6.4 未調査 2023/03/29
6.1 3.6.1 未調査 2022/11/01
5.8 3.6.0 未調査 2021/07/20
5.6 3.5.1 未調査 2020/12/08
4.5 1.12.4 未調査 2016/04/12
4.3 1.11.3 未調査 2015/08/18
4.2 1.11.2 未調査 2015/08/23
4.0 1.11.1 未調査 2014/09/04
3.9 1.11.0 未調査 2014/04/16

Contact Form7のcssとjavascriptの読み込みを制御する

Filed under: contactform7,functions.php,wordpressプラグイン — kdcs @ 2024年9月13日 金曜日

確認時のContact Form7のバージョンは5.9.8
プラグインが吐き出すcssについては以前からfunctions.phpの「wp_head関連 wp_headでプラグインのcssを読み込ませない」で対応していたが、最新バージョンのContactForm7ではwp_footerに出力されるjavascriptが多くなっている。
全ページに出力されるため、必要のないページには読み込ませない方法。(公式サイトより)

functions.php

// contactform7関連 wp_headでcss、wp_footerでjavascriptを読み込ませない-------------------
// ※cssはwp_head関連の「cssを読み込ませない」で対応中------------------------------------
add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );

footer.php
お問い合わせ(contact)来店予約(reservation)の場合

<?php if (is_page('reservation')||is_page('contact')): ?>
<?php
    if ( function_exists( 'wpcf7_enqueue_scripts' ) ) {
        wpcf7_enqueue_scripts();
    }
    if ( function_exists( 'wpcf7_enqueue_styles' ) ) {
        wpcf7_enqueue_styles();
    }
?>
<?php endif; ?>

基本的にcssはwp_head関連の「cssを読み込ませない」で対応中なのでfooter.phpはスクリプトの記述だけでよい

ダッシュボードに表示されるプラグイン情報を非表示にする

Filed under: functions.php,wordpressプラグイン — kdcs @ 2024年9月12日 木曜日

Smash Balloon Social Photo Feedを6.5.0にしたらダッシュボードにプラグインの情報が表示されるようになった。
編集者権限や投稿者権限でも表示されてしまい、管理者以外プラグインの操作ができないようにしているので、プラグインへのリンクをクリックしても「アクセスする権限がありません」となる。

この表示は邪魔なので管理者以外は非表示にする方法
functions.php

//ダッシュボードウィジェット「Smash Balloon Social Photo Feed」非表示 --------------------
function sb_remove_dashboard_widgets() {
  if (!current_user_can('administrator')) {
     remove_meta_box('sb_dashboard_widget', 'dashboard', 'normal');
    }
}
add_action('wp_dashboard_setup', 'sb_remove_dashboard_widgets');

この記述でダッシュボードの表示オプションにも「Smash Balloon」は出なくなる

サイト内検索

カテゴリー

最近の投稿

↑上に戻る