2016-04-22 5 views
0

私は特別な問題があります。私は、ユーザーの掲示板をユーザーの掲示板に割り当てるために分類法を使用するテーマを使用しています。だから、すべてのユーザーは自分のボードを作成し、自分の投稿を1つのボードに割り当てることができます。私はwordpress frontent uploaderを使用していて、フォームにドロップダウンリストを追加することができます。それはうまく動作します。javascriptでフォームのオプションを非表示にするには

ただ1つの問題があります。ユーザーはドロップダウンですべてのボードを選択できます。

分類構造は次のようになります。

Parent: User ID 
Child: boardname 

だから私の出力は次のようになります。

<div class="wpuf-fields wpuf_board_select_123_321"> 

<select data-required="yes" data-type="select" name='board[]' id='board[]' class='board wpuf_board_123' > 
    <option value='-1'>&#8212; Select &#8212;</option> 
    <option class="level-0" value="3">1</option>   // value is term ID // Content is User ID // parent 
    <option class="level-1" value="17">User Board </option> // value is term ID // Content is Boardname 
    <option class="level-1" value="26">User Board</option> // value is term ID // Content is Boardname 
    <option class="level-1" value="106">User Board</option> // value is term ID // Content is Boardname 
    <option class="level-1" value="62">User Board</option> // value is term ID // Content is Boardname 
    <option class="level-1" value="148">User Board</option> // value is term ID // Content is Boardname 
    <option class="level-0" value="191">10</option>   // value is term ID // Content is User ID // User has no boards 
    <option class="level-0" value="193">11</option>   // value is term ID // Content is User ID // User has no boards 
    <option class="level-0" value="10">2</option>   // value is term ID // Content is User ID // parent 
    <option class="level-1" value="123">User Board</option> // value is term ID // Content is Boardname 
    <option class="level-1" value="124">User Board</option> // value is term ID // Content is Boardname 
    <option class="level-1" value="192">User Board</option> // value is term ID // Content is Boardname 
    <option class="level-1" value="121">User Board</option> // value is term ID // Content is Boardname 
    <option class="level-1" value="155">User Board</option> // value is term ID // Content is Boardname 
    <option class="level-0" value="226">20</option>   // value is term ID // Content is User ID // User has no boards 
</select> 

</div> 

だから、これは私がこれまでにやっていることです:

$board_parent_id = get_user_meta($user_id, "_Board Parent ID", true); 
$board_children_count = wp_count_terms("board", array("parent" => $board_parent_id)); 

私の考え"非表示"を追加するjavascriptで望ましくないオプションを隠すことでした。 私はすでに親のIDと子どもの数と私は苦しんでいる今、さらに行く方法。

ここで誰かが解決策を見つけるのを助けてくれることを願っています。

ありがとうございます!

答えて

0

ユーザーがwp-adminを使用しているかどうかはわかりませんでした。しかし、私はあなたの問題がwp-adminで起こっていると仮定しています。

ではJavaScriptを使用して非表示にするには、このような何かを行うことができます。

// Add to footer on admin a function to exec the scripts 
add_action('admin_footer', 'my_custom_scripts'); 

// The function 
function my_custom_scripts() { 
    // An array of IDs that must be removed 
    $itemsIdsToHide = array("121", "226", "123"); 

    // Create a string to convert the PHP array to JS array 
    $strJavascriptArray = "Array('" . implode("','", $itemsIdsToHide) . "')"; 
    ?> 
    <script> 
     // Echoes the javascript array created in PHP 
     var arr = <?php echo $strJavascriptArray; ?>; 

     // Loop into each item of select. 
     // BE SURE TO QUERY ONLY THE SELECT YOU NEED 
     jQuery('select>option').each(function() { 

      // IF the option ID is in the array to remove, remove the item 
      if(arr.indexOf($(this).attr("value")) > -1) { 
       $(this).remove(); 
      } 
     }); 
    </script> 
    <? 
} 

はそれが役に立てば幸い:)

関連する問題