// ダッシュボードの不要項目削除
function remove_dashboard_widget() {
remove_meta_box('dashboard_right_now','dashboard','normal'); // 概要
remove_meta_box('dashboard_activity','dashboard','normal'); // アクティビティ
remove_meta_box('dashboard_quick_press','dashboard','side'); // クイックドラフト
remove_meta_box('dashboard_primary','dashboard','side'); // WordPressニュース
}
add_action('wp_dashboard_setup','remove_dashboard_widget');
// サイドメニューを非表示
function remove_menus() {
remove_menu_page( 'edit.php' ); // 投稿
remove_menu_page( 'edit-comments.php' ); // コメント
if ( ! current_user_can( 'administrator' ) ) {
remove_menu_page( 'edit.php?post_type=page' ); //固定ページ
}
}
add_action( 'admin_menu', 'remove_menus', 999 );
remove_action('wp_head','wp_generator');
add_filter( 'automatic_updater_disabled', '__return_true' );
function add_dashboard_widgets() {
wp_add_dashboard_widget(
'quick_action_dashboard_widget', // ウィジェットのスラッグ名
'クイックアクション', // ウィジェットに表示するタイトル
'dashboard_widget_function' // 実行する関数
);
}
add_action( 'wp_dashboard_setup', 'add_dashboard_widgets' );
function dashboard_widget_function() {
?>
<ul class="quick-action">
<li>
<a href="/doc/manual.pdf" target="_blank" class="quick-action-button">
<span class="dashicons-before dashicons-book"></span>
マニュアルを見る
</a>
<p> => サイト更新についてのpdfファイルをこちらからご覧いただけます。</p>
</li>
</ul>
<?php
}
function login_logo() {
echo '<style type="text/css">.login h1 a {background-image: url('.get_bloginfo('template_directory').'/img/common/logo_black.png);width:300px;height:80px; background-size: 300px;}</style>';
}
add_action('login_head', 'login_logo');
// ログイン画面のロゴURL
function custom_login_logo_url() {
return get_bloginfo( 'url' );
}
add_filter( 'login_headerurl', 'custom_login_logo_url' );
// ログイン画面のロゴタイトル
function custom_login_logo_url_title() {
return 'トップページを表示';
}
add_filter( 'login_headertitle', 'custom_login_logo_url_title' );
ドメイン/?author=1 などが入力されたらTOPへリダイレクトさせる
function disable_author_archive_query() {
if( preg_match('/author=([0-9]*)/i', $_SERVER['QUERY_STRING']) ){
wp_safe_redirect( home_url() );
exit;
}
}
add_action('init', 'disable_author_archive_query');
//ゴミ箱に移動する直前に実行する
add_action( "wp_trash_post", "no_delete_page",1,1 );
function no_delete_page($post_id) {
global $post_type;
//固定ページのみ対象
if($post_type == 'page'){
//削除したくないページIDを配列に格納
$no_delete_page_lists = array("7","12");
if(in_array($post_id, $no_delete_page_lists)){
if(!strpos(wp_get_referer(), 'notrash=1')){
$no_trash_flag = '¬rash=1';
}
wp_redirect( wp_get_referer() . $no_trash_flag );
exit();
}
}
}
//エラーメッセージ表示処理
add_action('admin_notices', 'trash_notice');
function trash_notice(){
//パラメータがある時にメッセージを表示
if(strpos(getenv('REQUEST_URI'), 'notrash=1')){
echo '<div class="message error"><p>投稿IDをテンプレートで使用しているため、選択されたページを削除することはできません。削除禁止処理はfunctions.phpにて編集可能です。</p></div>';
}
}
function post_background_change() {
?> <style type="text/css">
/* 下書き */
.status-draft {
background: #EBF1F7 !important;
}
/* 非公開 */
.status-private {
background: #F4F7DF !important;
}
/* 予約済み */
.status-future {
background: #F7E1DF !important;
}
</style> <?php }
add_action( 'admin_head', 'post_background_change' );
// 画質調整
add_filter( 'jpeg_quality', function( $arg ){ return 100; } );
add_action( 'pre_get_posts', 'my_custom_query_vars' );
function my_custom_query_vars( $query ) {
/* @var $query WP_Query */
if ( !is_admin() && $query->is_main_query()) {
if ( is_post_type_archive('gallery') ) {
$query->set( 'posts_per_page' , 18 );//表示したい数
}else{}
}
return $query;
}
上位権限がメディアにアップロードした画像を消させないようにする
function restrict_media_deletion_capability() {
$current_user = wp_get_current_user();
// 管理者以外の場合に制限を適用
if (!current_user_can('administrator')) {
// 上位の権限を持つユーザーロールを取得
$user_roles = array('editor', 'author'); // 削除を制限したい上位ユーザーロールを指定
// 上位の権限を持つユーザーロールに対して削除権限を剥奪
foreach ($user_roles as $role) {
$user_role = get_role($role);
$user_role->remove_cap('delete_posts');
$user_role->remove_cap('delete_published_posts');
}
}
}
add_action('admin_init', 'restrict_media_deletion_capability');