サポート » テーマ » テーマ公開に向けたコーディング整形、機能整理について

  • 解決済 deerboy_jp

    (@deerboy_jp)


    はじめまして。

    テーマ公開初挑戦に向けてTwentyFifteenを元にソースを整形中の者です。

    ・機能的にecho でいけるところも printf で組まれているのはなぜ
    ・テンプレート側では echo も使われており、使い分けルールがわからない
    ・外観カスタマイザーに記事ループのフィルター機能を組み込んでもよいでしょうか
    (チェックボックスやカテゴリID指定でループ内容をexcludeする機能)
    ・ダメな場合、外観カスタマイザー以外(設定メニュー追加)ならよいのか、そもそもプラグインの範疇なのでテーマに組み込むべき機能ではないのかも知りたいです
    ・Jetpackの無限スクロールに対応するadd suport関数をfunction.phpに内蔵してもよいか
    ・twenty fifteenのコーディング(= WPのコーディング規約?)はPHP界隈的にデファクトスタンダート(もっというとベストプラクティスに近いもの)と思ってよいのか

    以上、自分なりに調べたり他の方のテーマを見た上で煮え切らない部分をまとめました。

    ご教示のほど、よろしくお願いいたします!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター Daisuke Takahashi

    (@extendwings)

    https://developer.wordpress.org/themes/getting-started/
    これが公式のドキュメントです。編集中かつ英語ですが、公式ディレクトリに公開するのであれば一度目を通しておくとある程度の疑問が解決します。

    https://make.wordpress.org/core/handbook/best-practices/
    コーディングスタンダードなどはこちらのメニューから参照できます。

    nobita

    (@nobita)

    こんにちは、

    わたしは、テーマを作ったことがあるだけで、レビューチームなどには属していないので、
    一般論でしか書けませんが、、、

    機能的にecho でいけるところも printf で組まれているのはなぜ

    例えば、翻訳文字列とhtmlを分離して書きたいような場合に使われるケースが多いと思います。

    printf( '<span class="sticky-post">%s</span>', __( 'Featured', 'twentyfifteen' ) );

    翻訳文字列には、htmlを含めることもできますが、それだと翻訳する人がいろいろ書き換えたりできるので、そういうのが困ると思う人は、

    printf( '<span class="sticky-post">%s</span>', esc_html__( 'Featured', 'twentyfifteen' ) );

    なんて書いたりする人もいます。

    echo するのか、printf なのかは 厳密に決められてはいません。WordPressには、
    wp_sprintf なんてのもありますが、あまり見ることはありません。

    ・外観カスタマイザーに記事ループのフィルター機能を組み込んでもよいでしょうか
    (チェックボックスやカテゴリID指定でループ内容をexcludeする機能)
    ・ダメな場合、外観カスタマイザー以外(設定メニュー追加)ならよいのか、そもそもプラグインの範疇なのでテーマに組み込むべき機能ではないのかも知りたいです
    ・Jetpackの無限スクロールに対応するadd suport関数をfunction.phpに内蔵してもよいか

    実装次第だと思いますが、例えば、jetpackがインストールされていて、ある機能がアクティブになっている場合に、カスタマイザーに変更機能が表示される。という作りなら、認められるかもしれないですが、デフォルトで、そういった機能が組み込まれているんだとすると、問題になるかもしれないです。
    テーマでは、プラグインインストーラの機能を組み込むことも許可されているので、工夫次第ではないかと思います。

    twenty fifteenのコーディング(= WPのコーディング規約?)はPHP界隈的にデファクトスタンダート(もっというとベストプラクティスに近いもの)と思ってよいのか

    これについては、?です。

    公式テーマの審査を受ける場合は、例えば、以下のような部分は問題になると思います。

    <head>
    	<meta charset="<?php bloginfo( 'charset' ); ?>">
    	<meta name="viewport" content="width=device-width">
    	<link rel="profile" href="http://gmpg.org/xfn/11">
    	<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
    	<!--[if lt IE 9]>
    	<script src="<?php echo esc_url( get_template_directory_uri() ); ?>/js/html5.js"></script>
    	<![endif]-->
    	<?php wp_head(); ?>
    </head>

    以下のような、jsのハードコーディングは、拒否られるでしょう。

    <!--[if lt IE 9]>
    	<script src="<?php echo esc_url( get_template_directory_uri() ); ?>/js/html5.js"></script>
    <meta name="viewport" content="width=device-width">
    	<link rel="profile" href="http://gmpg.org/xfn/11">

    も、問題になるかもしれません。

    なので、公式に登録するという意味では、スタンダードと思わないほうがいいかも、

    sysbird

    (@sysbird)

    こんにちわ、

    >外観カスタマイザーに記事ループのフィルター機能を組み込んでもよいでしょうか

    Twenty Fourteenで、
    おすすめコンテンツを上に表示してメインクエリーからは除外する、という機能があります。
    テーマカスタマイザーで、おすすめコンテンツのタグ名を指定するようになっているので、参考にしてみては~

    トピック投稿者 deerboy_jp

    (@deerboy_jp)

    >Daisuke Takahashiさん

    とても見やすいですね。知らなかったのでチェックしてみます!

    > nobitaさん

    とても勉強になりました!
    詳細にご教示いただきありがとうございます。

    テーマでは、プラグインインストーラの機能

    特にこちらは知らなかったので、使ってみたいと思います。

    > sysbirdさん

    あったんですね!安心して組み込んでみようと思います。

    みなさま早々にご回答いただき、ありがとうございます。
    疑問が解決したので解決済みとさせていただきます。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「テーマ公開に向けたコーディング整形、機能整理について」には新たに返信することはできません。