web-dev-qa-db-ja.com

自分のカスタムショートコードを追加する方法

私はいくつかのページ/記事の中でHTMLの一部を再利用しようと思っていますが、私はWordPressでこれを取得する方法がわかりません。

エディタにヘルパーを含めることができればいいのですが、これは解決策が必要な今のところ機能のあるのはいいことです。

2
sorin

これまでに20個のショートコードを追加できる Shortcoder プラグインを見つけました。現時点ではこれで十分です。開発者がこの制限をすぐに解決できることを願っています。

どういうわけか、私がWordpressのウェブサイトでその名前で検索するとき、このプラグインは現れません。

また、私は新しい提案/代替案を受け入れることをオープンにしています。

1
sorin

ショートコードは、 ショートコードAPI を介して機能します。基本的にショートコードは、処理されて関連付けられたPHP関数に渡されるデータを書き出す単なる人間にやさしい形式です。

だからあなた自身のショートコードを追加することが含まれます:

  1. ショートコードからAPIによって渡される、データを処理する_ PHP関数のコーディング。
  2. その関数をショートコードハンドラとして登録します。

私は WP Utility Short Codes プラグインが、スニペットなどをエディタに挿入するのに良い方法としていくつかの質問に答えて推奨されていたことも覚えています。

2
Rarst

私はこれのために他の誰かのプラグインを使うことをお勧めしません。カスタム機能をあなたのテーマに組み込むか、あなた自身のプラグインを追加するだけです(他の誰かのシステムを使うことはUIとあなたが本当に必要としない追加情報に関してオーバーヘッドを追加します)。

投稿コンテンツのどこかにグラバター画像を追加するカスタムショートコードが必要だとしましょう。なぜこれが必要なのかわからないが、ちょっと...それは楽しいかもしれません!

投稿やページに[user_gravatar user="[email protected]" size="80"]を置き、[email protected]に関連付けられたグラバターで動的に置き換えられ、指定した値(1pxから512pxまで)にサイズ変更されるとします。これはあなたが使用する機能です:

function user_gravatar_sc($atts) {
    extract(shortcode_atts(array(
        'user' => '',
        'size' => '80'
    ), $atts));

    if($user != '') {
        $img = 'http://www.gravatar.com/avatar/' . md5($user) . '?size=' . $size;
    } else {
        $img = 'http://www.gravatar.com/avatar/00000000000000000000000000000000' . '?size=' . $size;
    }

    return '<img src="' . $img . '" />';
}

add_shortcode('user_gravatar', 'user_gravatar_sc');

この関数はあなたが入力したどんなEメールアドレスのMD5ハッシュも取り、そのハッシュを使ってユーザーのグラバター画像を要求します。あなたがEメールアドレスを指定しなければ、しかし、それはまだ何かを返すでしょう - デフォルトの青いGグラバタープレースホルダー。サイズを指定しないと、デフォルトの80ピクセルになります。

このコードをあなたのテーマのfunctions.phpファイルに入れるか、あなたのサイトで走っているカスタムプラグインの本体に埋め込むことができます。これはあまりコードではないことがわかります。そのため、ショートコードを追加するために複雑なUIを持つサードパーティ製プラグインを使用すると、不要なオーバーヘッドが増えすぎることになります。

0
EAMann