WordPressでショートコードを作成する方法

公開: 2022-12-05

WordPress Web サイトの投稿やページでカスタム PHP コードを実行または表示する必要があったことはありませんか? デフォルトでは、WordPress はセキュリティ対策のために投稿またはページで PHP を実行することを許可していないため、プラグインを使用して投稿またはページで PHP コードを使用できるようにすることを検討したことがあるかもしれません。 実際には、追加のプラグインをインストールせずにコードを実行できます。ショートコードを作成するだけで、コードを別の PHP ファイルに追加するか、コードをテーマのfunctions.phpに配置して、作成したショートコードを使用してあなたのウェブサイトの投稿やページに結果を表示してください!

ショートコードとは?

WordPress 2.5 からのショートコード API のリリースで導入されたショートコードを使用すると、通常は[thisone]のように角括弧内の 1 行で多くの複雑なコードを必要とする最小限の労力で機能を追加できます。 ショートコードは、複雑な関数の結果を表示するプロセスを大幅に簡素化するために、多くの WordPress プラグインによって提供されていました。 たとえば、WooCommerce のような人気のある e コマース プラグインには、このプラットフォームを使用するすべてのストア オーナーにとって非常に役立つ、いくつかの既成のショートコードもあります。

しかし、ブロック エディター (グーテンベルグ) がクラシック エディターに取って代わって以来、多くのプラグインがブロックを提供し始めています。 ただし、コーディングの知識がある場合、またはサイトに追加機能を追加するためのコードがある場合は、ショートコードを使用することが、試すことができる最良のオプションの 1 つです。 また、Gutenberg、Elementor、および Divi でショートコードを使用してブログ投稿に推定読書時間を追加することに関する以前の記事を読むことができます。

このチュートリアルでは、WordPress でショートコードを作成する方法を紹介します。

ショートコードの作成方法

ショートコードを作成する前に、テーマのfunctions.phpファイルにコードを追加するため、サイトのバックアップを作成し、子テーマを使用して親テーマを壊したり、テーマを更新したときに変更内容が失われたりしないようにすることをお勧めします。 ファイルを開くには、WordPress 管理ダッシュボードから [外観] [テーマ ファイル エディター] に移動します。 表示されるページで、テーマ ファイルリストからテーマ関数 ( functions.php )をクリックして、ファイル エディターを開きます。

別の方法として、 myshortcodes.phpという名前の別の PHP ファイルをテーマ フォルダー (ほとんどの場合wp-content themes "Your Theme"にあります) に作成することもできます。

ファイルを作成したら、そのファイルの PHP 区切り文字 ( <?php ?> ) の間に必要な数のコードとショートコードを追加できます。 次に、テーマのfunctions.phpファイルの末尾に 1 行のコードを追加して、ショートコード ファイルに加えた変更をシステムに含めるように指示するだけです。 コードは次のとおりです。

 include('myshortcodes.php');

ステップ 1: コードを準備する

準備ができたら、ショートコードにしたいコードを準備します。 ショートコードは本質的にフィルターであるため、コードには関数が必要であり、副作用なしで返される必要があります。 このチュートリアルでは、PHP コードを使用して単語数を取得し、単語数を 260 で割って推定読書時間を計算します。これは、成人が 1 分間に黙読する単語の平均数です。 次に、次のように、推定時間と単語数を 1 つのフレーズで返します。

  • 「1 分で読める (単語数 121)」

次のコードをテーマのfunctions.phpの一番下に配置します。

 関数 reading_time() {
$content = get_post_field( 'post_content', $post->ID );
$word_count = str_word_count( strip_tags( $content ) );
$readingtime = ceil($word_count / 260);
$wcounttext = " (単語数 ". $word_count .")";
もし ($readingtime == 1) {
$timer = " 読み取り分";
} そうしないと {
$timer = "分読";
}
$totalreadingtime = $readingtime . $timer . $wcounttext;
$totalreadingtime を返します。
}

ステップ 2: 基本的なショートコードを作成する

次のステップは、準備したコードの基本的なショートコードを作成することです。 ショートコードを作成するには、エラーを回避するために次のガイドラインに従う必要がある場合があります。

  • add_shortcode( string $tag, callable $callback )関数を使用してショートコードを追加しますが、 $tagは投稿コンテンツで検索されるショートコード名であり、 $callbackは準備したコードを呼び出すためのものです
  • ショートコード名はすべて小文字にする必要があります (数字とアンダースコアを使用できます)
  • ハイフン (-) の使用は避けてください
  • 別のプラグイン ショートコードとの衝突を避けるために、ショートコード名を一意にするプレフィックスを追加します。

準備ができたら、 add_shortcode関数を使用してコードのショートコードを作成し、次の例のようにショートコード名とコードのコールバックを関数パラメーターに追加します。

 add_shortcode('wpbread', 'reading_time');

上記のショートコードは、ステップ 1 の推定読み取り時間コード用です。ショートコード名に'wpbread'を使用し、コード関数名の後にある'reading_time'コールバックを使用します。 functions.phpファイルまたはカスタム PHP ファイルで、手順 1 で準備したコードのすぐ下に上記のコードを追加し、加えた変更を保存します。

ステップ 3: ショートコードの使用

ショートコードの準備ができたら、この場合のショートコードは [wpbread] です。今度は、コンテンツのすぐ上、またはコンテンツ エディター内で表示することを選択した任意の場所にショートコードを追加して、投稿の 1 つにそれを呼び出してみましょう。

それでは、投稿をプレビューまたは公開して、フロントエンドの結果を見てみましょう。

上のスクリーンショットからわかるように、私たちのコンテンツのすぐ上に、私たちが書いた記事の「 11 minutes read (word count 2775) 」と書かれた推定読書時間があります.

結論

デフォルトでは、WordPress はセキュリティ上の理由から、投稿またはページで PHP を実行することを許可していません。 ただし、ショートコードを作成するだけで、別の PHP ファイルにコードを追加するか、コードをテーマのfunctions.phpファイルに配置してから、作成したショートコードを使用して、インストールせずに Web サイトの投稿またはページに結果を表示できます。追加のプラグイン。 ショートコードを使用すると、通常は 1 行で多くの複雑なコードを必要とする最小限の労力で機能を追加できます。

ブロックエディター (Gutenberg) が WordPress でコンテンツを公開する方法として従来のエディターに取って代わって以来、多くのプラグインがより簡単で視覚的なレイアウトが優れているブロックを提供し始めています. ただし、コーディングの知識がある場合、またはサイトに追加機能を追加するためのコードがある場合は、ショートコードを使用することが、試すことができる最良のオプションの 1 つです。