2017-01-27 10 views
0

CSSのクラス名をテンプレートファイル内のBBPressフォーラムドロップダウンに動的に設定する方法はありますか?WordPress CSSクラスを動的にbbp_form_topic_type_dropdownに設定する方法

BBPressform-topic.phpをテーマにコピーしましたが、今は要素のスタイルをカスタマイズしようとしています。 wp-content/plugins/bbpress/includes/topics/template.phpに居住しているbbp_get_form_topic_type_dropdown()bbp_get_form_topic_status_dropdown();、 -

Create New Topic下面積2つのドロップダウン、すなわちトピックタイプトピックステータスは、それぞれ以下の機能を使用してレンダリングされています。

次のスニペットがどこにあるか私は私のクラス名を追加することができ、上記の機能に

$r = bbp_parse_args($args, array(
    'select_id' => 'bbp_stick_topic', 
    'default_css_class' => 'form-control', 
    'tab'   => bbp_get_tab_index(), 
    'topic_id'  => 0, 
    'selected'  => false 
), 'topic_type_select'); 

が、問題は私の変更は、私がBBPressをアップグレードする必要がある場合には失われますです!私のテーマのフォルダへtemplate.phpをコピーし、それに変更を加えることで

  1. :WPは正しいである、関数がすでに定義されていると言うので、私、私はすでに上記の状況を回避しようとしてい

    2つのことtemplate.phpをコピーし、新しい機能を作成することでそのアイデア

  2. を破棄しなければならなかった:bbp_get_form_topic_type_dropdown_custom()bbp_get_form_topic_status_dropdown_custom()のように作成された新しい機能を、私のCSSクラスを追加しました彼らへ。しかし、ドロップダウンは全くレンダリングされませんでした!

私は最近非常に最近WPを始めましたので、ご質問は愚かに見えます。どんな提案も非常に役に立ちます。

答えて

0

もう少し検索した後、私はついに答えたhereを得ました。 Robkkに感謝します!

私は、私のfunctions.phpファイルに新しい関数を作成し、私のCSSクラスを追加して、このようapply_filtersを使用:

function bbp_form_topic_status_dropdown_custom($args = '') { 
     echo bbp_get_form_topic_status_dropdown_custom($args); 
} 

function bbp_get_form_topic_status_dropdown_custom($args = '') { 
    // Parse arguments against default values 
    $r = bbp_parse_args($args, array(
     'select_id' => 'bbp_topic_status', 
     'default_css_class' => 'form-control', 
     'tab'  => bbp_get_tab_index(), 
     'topic_id' => 0, 
     'selected' => false 
    ), 'topic_open_close_select'); 
    ... 
    ... 
    <select class="<?php echo esc_attr($r['default_css_class']) ?>" name="<?php echo esc_attr($r['select_id']) ?>" id="<?php echo esc_attr($r['select_id']); ?>_select"<?php echo $tab; ?>> 
     <?php foreach (bbp_get_topic_statuses($r['topic_id']) as $key => $label) : ?> 
      <option value="<?php echo esc_attr($key); ?>"<?php selected($key, $r['selected']); ?>><?php echo esc_html($label); ?></option> 
     <?php endforeach; ?> 
    </select> 

    return apply_filters('bbp_get_form_topic_status_dropdown_custom', ob_get_clean(), $r); 
} 
:私の function.php

return apply_filters('bbp_get_form_topic_status_dropdown_tp', ob_get_clean(), $r); 

今、私はこれを持っています

関連する問題