これはプラグインの公式サポートスレッドにより適していると思いますが、開発者はフォーラムを読んでいないようです。
私は私のサイトの周りにショートコードでボタンを追加するために Standout CSS3 Buttonsプラグイン を使用しています。ショートコードにはcssclass
というオプションのパラメータがあり、これを使ってボタンのカスタムクラスを指定することができます。私のサイトはすでに.button
クラスのルールを持っているGantryフレームワーク上に構築されているので、ショートコードで単にcssclass="button"
を宣言してGantryのCSSにそれをカバーさせたいのです。残念ながら、私がそうするとき、プラグインはそれを認識していないようで、そしてページがロードされるとき、ボタンは.button
クラスを持っていません。
cssclass="button"
の代わりに、"button-pinterest"
や"button-rss"
のようにプラグインで定義されたクラスを指定した場合、ボタンはそのクラスと適切なスタイルを反映してきちんと更新されます。あたかもプラグインがカスタムクラスを削除しているように見えます - これはカスタムCSSクラスを提供するという非常に目的に反するようです。
サイドバーのこのページのプラグインによって生成されたボタン を見ることができます 。今のところ、.button-pinterest
クラスを使用しています。代わりに.button
クラスを使用したいのですが。
プラグインを見てショートコードで指定したクラスを追加する方法を見つけるためのPHPチョップはありません。親切にそれを見て私が私のカスタムクラスを追加するのを手伝ってくれる人はいますか?
ショートコードをハイジャックして、独自の追加ロジックを使用することができます。
テストされていないサンプルコード
add_action( 'after_setup_theme', function()
{
// Replace the plugin shortcode handler with your own.
add_shortcode( 'standout-css3-button', function( $atts, $content = NULL )
{
// Let the plugin make the button and store the result.
$button = scss3button( $atts, $content );
// No custom class, stop.
if ( empty ( $atts['cssclass'] ) )
return $button;
// Inject your own class, and add a white space as class separator.
return str_replace(
'class="',
'class="' . $atts['cssclass'] . ' ',
$button
);
});
});
ちなみに、私は自分のサイトでこのプラグインを使うことはありません。そのコードは私を悩ませます。あなたは本当にあなたのテーマに必要なボタンを実装することを検討し、より少なくより良いコードで逃げるべきです。