フックについてのお訊ね

ホーム フォーラム 使い方全般 フックについてのお訊ね

このトピックには9件の返信が含まれ、2人の参加者がいます。5 年、 12 ヶ月前 uishi さんが最後の更新を行いました。

10件の投稿を表示中 - 1 - 10件目 (全10件中)
  • 投稿者
    投稿
  • #51849

    uishi
    参加者

    動作に関するご質問の場合は必ずご記入ください。


    WordPress のバージョン:3.4.2

    Welcart のバージョン:1.2

    ご利用のテーマ:デフォルト

    症状を確認したブラウザ:

    サーバー(会社名、サービス名):webmatrix2

    SSLの利用: 無し | 専用SSL | 共用SSL

    WordPress のパーマリンク設定:なし


    —-

    ウィジットのcategoriesの

    apply_filters('usces_filter_welcart_category', $cquery, $cats->term_id

    フックの使い方がわかりません。

    $cats->term_idをfunction abcd_category($cats->term_id)

    のようにしてもエラーがでて表示されません。

    こちらのフックを使って、アイコンをつけようと思うのですが、

    上記エラーのため表示されません。

    直接IDを記入すると動きます。どうしたらいいのでしょうか。

    何かヒントをいただけるとありがたいです。

    以下とりあえず書いてみたコード

    class MyWalker extends Walker_Category {

    function start_lvl( &$output, $depth = 0, $args = array() ) {
    if ( 'list' != $args['style'] )
    return;

    $indent = str_repeat("t", $depth);
    $output .= '<a class="openchild" href="#"><img src="'.bloginfo('url').'wp-content/themes/welcart_1010/images/openbtn.png" alt="open" title="open" /></a>'.$indent.'<ul class="children">';
    }
    }
    function abcd_category($cats){
    $MyWalker = new MyWalker();
    $args=array(
    'use_desc_for_title'=>0,
    'child_of'=>6,//ここでidを取得したい。
    'title_li'=>'',
    'walker'=>$MyWalker
    );
    return $args;
    }

    add_filter('usces_filter_welcart_category','abcd_category');

    #65516

    nanbu
    参加者

    こんにちは。

    フックの使い方に関しましては、まずはこちらをご参照いただけますでしょうか。

    https://www.welcart.com/community/archives/1697

    よろしくお願いします。

    #65517

    uishi
    参加者

    nanbu様

    読んだ上での質問だったんですが、第3引数以降は、ユーザー関数で引数の値を参照できるというに理解したんですが、正しくないでしょか。

    ユーザー関数で利用する場合、$cats->term_idという書き方でいいのでしょうか。webmatrix2ではエラーとなりますが。

    #65519

    uishi
    参加者

    結局、$cats->term_idは取得できませんでした。

    あと$cqueryがクエリ文字型だったので、連想配列を用いたかったんで、

    welcart_categoryを継承して独自のウィジットを作って対応しました。

    お騒がせして申し訳ありませんでした。

    #65520

    nanbu
    参加者

    $cats->term_id では取得できません。単なる引数ですので$term_id などのスカラーで指定することになります。

    #65521

    uishi
    参加者

    馬鹿な質問でご迷惑をおかけするかもしれませんが、

    フックの指定の変数には、何か値が入ってる類のものではないのでしょうか。

    $cats->term_idはウィジットで指定したカテゴリーのIDが入っていて、

    ユーザー関数側でその値(この場合カテゴリーのID、6とか7とか)が利用できるとってことなんでしょか

    #65522

    nanbu
    参加者

    add_filterをどのように記述されていますか?

    コードを示していただければ何かアドバイスできるかもしれません。

    #65523

    uishi
    参加者

    最初の投稿の//ここでidを取得したい。のところで

    'child_of'=>$cats->term_id

    とできて、カテゴリーのIDが取得できるといいんですが。

    急ぎではないのでお時間ありましたらお願いいたします。

    #65524

    nanbu
    参加者

    あ、一番下にあったんですね。僕はadd_filterを最初に書くもので気が付きませんでした。すみません。

    add_filterの引数はこのようにしてください。

    add_filter('usces_filter_welcart_category','abcd_category', 10, 2);

    するとabcd_categoryの引数はこのようになります。

    abcd_category($cquery, $term_id){

    ‘child_of’=>$term_id となります。

    #65525

    uishi
    参加者

    nanbu様

    ありがとうございます。ご指導どおり書いたらできました。

    今回は大変勉強になりました。改めて御礼申し上げます。

10件の投稿を表示中 - 1 - 10件目 (全10件中)

このトピックに返信するにはログインが必要です。