wordpress コンテンツにグリッドを設定するショートコードを追加しようとしています。私のテーマはfoundation5に基づいているので、「Shortcodes.php」という新しいファイルを作成し、それを functions.php にロードしました。ショートコードファイルに次のコードを挿入しました
<?php
function spalten_zeilen_function($atts, $content = null) {
extract(shortcode_atts(array(
'width' => '',
'position' => '',
'vertical' => '',
), $atts));
if ( $position == 'first' ) {
$return_string = '<div class="row '.$vertical.'">';
}
$return_string = '<div class="small-'.$width.' columns '.$position.';">';
$return_string = do_shortcode($content);
$return_string .= '</div>';
if ( $position == 'end' ) {
$return_string = '</div>';
}
wp_reset_query();
return $return_string;
}
function register_shortcodes(){
add_shortcode('grid_shortcode', 'spalten_zeilen_function');
}
add_action( 'init', 'register_shortcodes');
add_filter('widget_text', 'do_shortcode'); // Shortcodes auch in Widgets ausführen
add_filter( 'comment_text', 'do_shortcode' ); // Shortcodes auch in den Kommentaren ausführen
add_filter( 'the_excerpt', 'do_shortcode'); // Shortcodes auch in den Excerpts ausführen
?>
私がやりたいことは、ショートコードが最初のコンテンツを処理する場合に新しい行を開くことです。その後、列の幅を設定し、ショートコードが最後のコンテンツを処理する場合は終了タグを設定します。その後、コンテンツ自体が続き、最後のコンテンツの場合は行の終了 div が続きます。
レンダリングされたショートコードは次のようになります
[grid_shortcode position="first" width="6" vertical="valign-top"]Fügen Sie hier den den gewünschten Inhalt Ihrer neuen Spalte ein.[grid_shortcode]
だから私は次のようなものを期待します
<div class="row"><div class="small-6 columns first">
Fügen Sie hier den den gewünschten Inhalt Ihrer neuen Spalte ein.</div>
またはのように
[grid_shortcode position="end" width="6" vertical="valign-top"]Fügen Sie hier den den gewünschten Inhalt Ihrer neuen Spalte ein.[grid_shortcode]
だから私は次のようなものを期待します
<div class="small-6 columns end">Fügen Sie hier den den gewünschten Inhalt Ihrer neuen Spalte ein.</div></div>
しかし、それは私のテンプレートを殺すだけです。アイデアや提案はありますか?
君たちありがとう!