カテゴリー: スニペット,
WordPressプラグイン。基本的な機能を集約する用。記載するとテーマ変更&テストやリニューアルの際に、functinos.php のみに記載しておくと困る事柄などはプラグイン化しておく用途。たまに追加・修正されます。
<?php
/*
Plugin Name: WP Sabo Basic
Plugin URI: https://saboten24.net/
Description: 自分がほぼ100%使うであろうものだけを集約しています
Author: Saboten
Version: 0.2
Author URI: https://saboten24.net/
*/
/*
* var_dump の出力結果を highlight.js でシンタックスハイライト
* 最新版確認は https://cdnjs.com/libraries/highlight.js/
*/
function var_dump2($var) {
echo '<pre class="php" style="white-space:pre; font-family: monospace; font-size:12px; border:3px double #BED8E0;margin:8px;"><code>';
var_dump($var);
echo '</code></pre>';
echo '<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/styles/default.min.css"/>';
echo '<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/highlight.min.js"></script>';
echo '<script>hljs.initHighlightingOnLoad();</script>';
}
/*
* ユーザエージェントによるmobile判定。mobble使ったほうがいいかもしれない
*/
function is_mobile() {
$http_ua = $_SERVER['HTTP_USER_AGENT'];
if ( empty($http_ua) ) {
return false;
} else {
$useragents = array(
'iPhone',
'iPod',
'Android.*Mobile',
'Windows.*Phone',
'dream',
'CUPCAKE',
'blackberry9500',
'blackberry9530',
'blackberry9520',
'blackberry9550',
'blackberry9800',
'webOS',
'incognito',
'webmate',
'Silk',
'Opera Mini',
'Opera Mobi',
'Googlebot-Mobile'
);
$pattern = '/'.implode('|', $useragents).'/i';
return preg_match($pattern, $http_ua);
}
}
/**
* 管理バーの項目を削除
* http://wpcj.net/260
*/
function remove_bar_menus( $wp_admin_bar ) {
$wp_admin_bar->remove_menu( 'wp-logo' ); // ロゴ
$wp_admin_bar->remove_menu( 'customize' ); // サイト名 -> カスタマイズ (公開側)
$wp_admin_bar->remove_menu( 'comments' ); // コメント
}
add_action('admin_bar_menu', 'remove_bar_menus', 201);
/**
* ダッシュボードウィジェットを削除
* http://wpcj.net/895
*/
function remove_dashboard_widget() {
remove_meta_box( 'dashboard_quick_press', 'dashboard', 'side' ); // クイックドラフト
remove_meta_box( 'dashboard_primary', 'dashboard', 'side' ); // WordPressニュース
}
add_action('wp_dashboard_setup', 'remove_dashboard_widget' );
/*
* 管理画面にCSS,JSを追加
* http://kwski.net/wordpress/975/
*
*/
function wp_custom_admin_page() {
// テーマフォルダにする場合はこっち
// $siteurl = get_settings('siteurl');
// $css_url = $siteurl . '/wp-content/themes/sabo24/style-admin.css';
// $js_url = $siteurl . '/wp-content/themes/sabo24/js-admin.js';
$plugin_dir = plugins_url( '', __FILE__ ).'/';
$css_url = $plugin_dir . 'style-admin.css';
$js_url = $plugin_dir . 'js-admin.js';
wp_enqueue_style( 'my_admin_style', $css_url );
wp_enqueue_script( 'my_admin_script', $js_url, '', '', true);
}
add_action( 'admin_head', 'wp_custom_admin_page', 100);
/*
* YouTube埋め込みをレスポンシブ対応
* https://parashuto.com/rriver/development/customizing-wordpress-oembed-youtube-html-code
*/
function custom_youtube_oembed($code){
if(strpos($code, 'youtu.be') !== false || strpos($code, 'youtube.com') !== false){
$html = preg_replace("@src=(['\"])?([^'\">\s]*)@", "src=$1$2&showinfo=0&rel=0", $code);
$html = preg_replace('/ width="\d+"/', '', $html);
$html = preg_replace('/ height="\d+"/', '', $html);
$html = '<div class="youtube">' . $html . '</div>';
return $html;
}
return $code;
}
add_filter('embed_handler_html', 'custom_youtube_oembed');
add_filter('embed_oembed_html', 'custom_youtube_oembed');
/*
* 特定キーワードを含む検索クエリは即中止
*
*/
function my_search_filter( $query ) {
if(strpos($query->query_vars['s'],'eval') !== false){
wp_die('禁止キーワード「eval」を含んでいるため中止されました');
}
}
add_action( 'pre_get_posts','my_search_filter',1 );
/*
* author.php 投稿者アーカイブ非表示
* https://www.webdesignleaves.com/pr/wp/wp_user_enumeration.html
*
*/
function disable_author_archive_query() {
if( preg_match('/author=([0-9]*)/i', $_SERVER['QUERY_STRING']) ){
wp_redirect( home_url() );
exit;
}
}
add_action('init', 'disable_author_archive_query');
?>
関連記事はまだありません