widget new-popularについて

6件の返信スレッドを表示中
  • 投稿者
    投稿
    • #43009 返信
      Hidekichi
      ゲスト

      query monitorで色々見ていた所、lib/widgets/new-popular.phpでnoticeが出てまして、以下のように直した所noticeが消えました。
      で、その後カスタマイザーで値をいじって確かめましたがnoticeは出ませんでしたので報告します。が、まだ何かしら隠されたいつものアレ(笑)があるかもしれませんので、十分テストして下さい。

      書き換えた部分の下にあるグローバル変数の値はそのままにしていますが、そこらを再確認してもらうと良いかと思います。
      だいたいの所、その値がない場合は「これ」ある場合は「それ」みたいな感じで指定しているだけです。

      元々の書き方で良いのではないかと僕も思ってたんですけれども、やはりnoticeが出てしまいます。
      例えば、$title_new = apply_filters( 'widget_title_new', $instance['title_new'] );の場合、
      ‘widget_title_new’を$instance[‘title_new’]で書き換えて、$title_newに入れると言う感じですけれども、フォームでは、変更がある場合に入力という形になっているので、デフォルトで$instance[‘title_new’]はカラと言う所にnoticeが出るのではなかろうかと思います。

      function widget($args, $instance) {
          extract( $args );
          
          //$title_new = apply_filters( 'widget_title_new', $instance['title_new'] );
          //$title_popular = apply_filters( 'widget_title_popular', $instance['title_popular'] );
          //表示数を取得
          //$entry_count = apply_filters( 'widget_entry_count', $instance['entry_count'] );
          //表示タイプ
          //$entry_type = apply_filters( 'widget_entry_type', $instance['entry_type'] );
          //固定ページを含める
          //$is_pages_include = apply_filters( 'widget_is_pages_include', $instance['is_pages_include'] );
          //$is_views_visible = apply_filters( 'widget_is_views_visible', $instance['is_views_visible'] );
          //$range = apply_filters( 'range', $instance['range'] );
          //$range_visible = apply_filters( 'range_visible', $instance['range_visible'] );
          //$is_ranking_visible = apply_filters( 'is_ranking_visible', $instance['is_ranking_visible'] );
          
          $title_new = apply_filters( 'widget_title_new', empty($instance['title_new']) ? "新着記事" : $instance['title_new'] );
          $title_popular = apply_filters( 'widget_title_popular', empty($instance['title_popular']) ? "人気記事" : $instance['title_popular']);
          $entry_count = empty($instance['entry_count']) ? 5 : absint( $instance['entry_count'] );
          $entry_type = apply_filters( 'widget_entry_type', empty($instance['entry_type']) ? "default" : $instance['entry_type'], $instance );
          $is_pages_include = apply_filters( 'widget_is_pages_include', empty($instance['is_pages_include']) ? "" : $instance['is_pages_include'], $instance );
          $is_views_visible = apply_filters( 'widget_is_views_visible', empty($instance['is_views_visible']) ? "" :$instance['is_views_visible'], $instance );
          $range = apply_filters( 'range', empty($instance['range']) ? "" : $instance['range'], $instance );
          $range_visible = apply_filters( 'range_visible', empty($instance['range_visible']) ? "" : $instance['range_visible'], $instance );
          $is_ranking_visible = apply_filters( 'is_ranking_visible', empty($instance['is_ranking_visible']) ? "" : $instance['is_ranking_visible'], $instance );

      実は、ここよりもDuplicate Queriesで、重複したクエリの呼び出しがあるのがちょっと気になっているんですけれども、まぁここらは状況が分かり次第と言う感じで。

    • #43025 返信
      わいひらわいひら
      キーマスター

      修正方法、ありがとうございます!
      手元のファイルに適用しておきました。
      ただこういったnoticeは、他のウィジェットでも出るものがあるかもしれません。
      他のウィジェットも、似たような感じで書いていたりするので;

    • #44414 返信
      hidekichi
      ゲスト

      recent-comments.phpも発見したので修正版で、

      extract( $args );
          //タイトル名を取得
          $title = apply_filters( 'widget_recent_comment_title', empty($instance['title']) ? "最近のコメント" : $instance['title'] );
          //コメント表示数
          $count = apply_filters( 'widget_recent_comment_count', empty($instance['count']) ? 5 : absint( $instance['count'] ) );
          //コメント文字数
          $str_count = apply_filters( 'widget_recent_comment_str_count', empty($instance['str_count']) ? 100 : absint( $instance['count'] ) );
          //管理者除外するか
          $author_not_in = apply_filters( 'widget_recent_comment_author_not_in', empty($instance['author_not_in']) ? false : true );

      これでnoticeは出なくなりました。

    • #44415 返信
      hidekichi
      ゲスト

      うぉぅ、一個間違えてたので全体貼り直します。

      extract( $args );
          //タイトル名を取得
          $title = apply_filters( 'widget_recent_comment_title', empty($instance['title']) ? "最近のコメント" : $instance['title'] );
          //コメント表示数
          $count = apply_filters( 'widget_recent_comment_count', empty($instance['count']) ? 5 : absint( $instance['count'] ) );
          //コメント文字数
          $str_count = apply_filters( 'widget_recent_comment_str_count', empty($instance['str_count']) ? 100 : absint( $instance['str_count'] ) );
          //管理者除外するか
          $author_not_in = apply_filters( 'widget_recent_comment_author_not_in', empty($instance['author_not_in']) ? false : true );

      コメント文字数の所で、$instance['str_count']$instance['count']でコピペしてました。

    • #44416 返信
      hidekichi
      ゲスト

      popular-ranking.php([S]人気記事)は、

      extract( $args );
          //ウィジェットモード(全ての人気記事を表示するか、カテゴリ別に表示するか)
          $widget_mode = apply_filters( 'widget_mode', empty($instance['widget_mode']) ? "defailt" : $instance['widget_mode'], $instance );
          $title_popular = apply_filters( 'widget_title_popular', empty($instance['title_popular']) ? "人気記事" : $instance['title_popular'] );
          //表示数を取得
          $entry_count = apply_filters( 'widget_entry_count', empty($instance['entry_count']) ? 5 : absint($instance['entry_count']) );
          //表示タイプを取得
          $entry_type = apply_filters( 'widget_entry_count', empty($instance['entry_type']) ? "default" : $instance['entry_type'], $instance );
          //固定ページを含める
          $is_pages_include = apply_filters( 'widget_is_pages_include', empty($instance['is_pages_include']) ? "" : $instance['is_pages_include'], $instance );
          //閲覧数の表示
          $is_views_visible = apply_filters( 'widget_is_views_visible', empty($instance['is_views_visible']) ? "" : $instance['is_views_visible'], $instance );
          //集計期間
          $range = apply_filters( 'range', empty($instance['range']) ? "all" : $instance['range'], $instance );
          //集計期間の表示
          $range_visible = apply_filters( 'range_visible', empty($instance['range_visible']) ? "" : $instance['range_visible'], $instance );
          //ランキング順位の表示
          $is_ranking_visible = apply_filters( 'is_ranking_visible', empty($instance['is_ranking_visible']) ? "" : $instance['is_ranking_visible'], $instance );

      こんな感じかと。また何かしらわかったら投稿します。

    • #44417 返信
      hidekichi
      ゲスト

      pc-text.php([S]パソコン用テキストウィジェット)は、

      //タイトル名を取得
          $title = apply_filters( 'widget_title_pc_text', empty($instance['title_pc_text']) ? "" : $instance['title_pc_text'] );

      ここだけで良さそうです。
      ラベルは入力された時だけ表示したらよいかと思うのでクォートで空欄にしてます。

    • #44425 返信
      わいひらわいひら
      キーマスター

      修正部分をありがとうございます。
      とりあえず以下のように修正してみました。
      https://github.com/yhira/simplicity2/commit/dc60eecdeca9d0600b17f9d31c38c256847452e0
      次のバージョンで適用されると思います。

6件の返信スレッドを表示中
返信先: widget new-popularについて
あなたの情報:




スポンサーリンク
アドセンス(大)
アドセンス(大)