[英]Dynamic Rows Shortcode for wordpress
我正在嘗試添加簡碼以在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>
但這只會殺死我的模板。 有什么想法或建議嗎?
感謝大伙們!
實際上,只是缺少點...。
<?php
function spalten_zeilen_function($atts, $content = null) {
extract(shortcode_atts(array(
'position' => '',
'width' => '',
'vertical' => '',
), $atts));
$return_string = '';
if ( $position == 'first' ) :
$return_string .= '<div class="small-12 columns"><div class="row '.$vertical.'">';
endif;
$return_string .= '<div class="small-'.$width.' columns '.$position.';">';
$return_string .= do_shortcode($content);
$return_string .= '</div>';
if ( $position == 'end' ) :
$return_string .= '</div></div>';
endif;
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.