3

投稿するとき、ユーザーが 1 つのカテゴリだけを選択できるようにしたい。どうすればそのようなことを達成できますか?

すみません、もっとはっきり言うべきでした。投稿が入るカテゴリを選択するためにチェックボックスをオンにするとき、1 つのオプションのみを選択できるラジオ ボタンとして機能するようにしたいと思います。

jQueryはそのための簡単な修正であり、jquery次のコードをオンラインで見つけました。私はそれをpost.phpヘッドタグに追加する場所を見つけようとしています:

var $t = jQuery.noConflict();
$t(document).ready(function() {   
  $t('#categorychecklist li input[type="checkbox"]').each(function(){
    $t(this).change(function(){
        //alert( $t('#categorychecklist li input[checked="checked"]').parent().html() );
        $t('#categorychecklist li input').attr('checked','');
        $t(this).attr('checked','checked');
    })
  })
});
4

4 に答える 4

1

私はまた、そのような問題に対する良い解決策を探しています。このトピックは、カテゴリをラジオ ボタンに変えるプラグイン (php) バリアントを示しています: http://wordpress.org/support/topic/select-only-one-category-1が、いかなる種類の検証も行わないため、 Webkit または firebug (type="radio" => type="checkbox") を介して html を編集することで操作できます。また、投稿の多くのカテゴリが再び発生する可能性があり、js スクリプトも firebug 操作の影響を受けやすくなります。

編集:カテゴリ(およびその他の分類法)をだまされないドロップダウンリストに変える良い解決策を見つけました: http://wordpress.org/extend/plugins/acategory-dropdown-list/

@dpassage コメントできないようです

于 2012-10-18T21:35:37.323 に答える
0

このようにfunctions.phpに入れてみませんか?管理エリアに登録するには?

//All the rest of your php stuff above ^^
add_action( 'admin_head', 'jquery_for_categories' );

function jquery_for_categories(){ ?>
    <script type="text/javascript">
      var $t = jQuery.noConflict();
      $t(document).ready(function() {   
        $t('#categorychecklist li input[type="checkbox"]').each(function(){
          $t(this).change(function(){
            //alert( $t('#categorychecklist li input[checked="checked"]').parent().html() );
            $t('#categorychecklist li input').attr('checked','');
            $t(this).attr('checked','checked');
          })
        })
      });
    </script>
} <?
于 2012-10-17T22:34:48.663 に答える
0

したがって、1 つだけのカテゴリを選択する必要があると仮定すると、inout タイプをチェックボックスからラジオ ボタンに変更することを検討します。<head />管理領域をこれまで以上に散らかすことなく、それを行うことができます。関数ファイルに追加できるいくつかのメソッドを次に示します。

/**
 * Add scripts (JavaScript, etc.) to the admin area
 */
public function addAdminScripts()
{
    if( is_admin() )
    {
        wp_register_script( 'your-script-id', get_template_directory() . '/inc/javascript/jquery.script.name.js', array( 'jquery' ) );
        wp_enqueue_script( 'your-script-id' );
    }
}

/**
 * Add CSS files to the admin area
 */
public function addAdminStyles()
{
    if( is_admin() )
    {
        wp_enqueue_style( 'your-css-id' );
        wp_enqueue_style( 'your-css-id', get_template_directory(). '/inc/css/your_custom_base.css' );
    }
}

この条件is_admin()により、ファイルが管理領域にのみ含まれるようになり、条件を拡張して投稿/編集画面を具体的にチェックできます。これにより、テーマのディレクトリから js/css ファイルを含めることができます (または、これをプラグインでラップする場合は、プラグイン ディレクトリに保存できます)。いずれにせよ、管理領域での侵襲性が低くなります。

さて、実際のスクリプトに関する限り、Alex は良いスタートを切りましたが、さらに一歩進んで、実際に入力タイプをラジオ ボタンに変更して、チェックボックスを強制的にラジオ ボタンのように動作させるのではなく、自然な動作を継承する必要があります。 . これは、 jqueryを使用して要素タイプを変更する方法を正確に行うための非常に優れたリファレンスです(ボーナス:選択した回答の作成者がそれを素敵なプラグインにラップしました)

于 2012-10-19T02:12:43.143 に答える