タグ付けされた質問 「theme-development」

テーマは、WordPressサイトのパブリック(フロントエンド)インターフェースを作成します。

4
title-tagとdocument_title_partsに関する問題
Wordpress version 4.5.1 特定のテンプレートのページタイトルを動的に更新しようとしています。wp_title()変更について多くのことを調べて学習した後、私はを使おうとしていますdocument_title_parts。ただし、フィルターをまったく実行できません。 私は子供のテーマですfunctions.php: add_theme_support( 'title-tag' ); //add_filter("after_setup_theme", function(){ add_theme_support("title-tag"); }); add_filter( 'document_title_parts', function( $title ) { error_log('here'); return $title; }, 10, 1 ); 上記のように、テーマサポートの追加の両方のバリエーションを試しましたが、ログを見ると、ページの再読み込みに何も表示されません。これerror_logは他の関数(などwp_title)で機能していたため、エラーロギングが機能しています。 pre_get_document_titleページの読み込み時に起動するも試しましたが、実際にタイトルを変更することはできません。 そう!フィルターを間違って使用しているか、テーマを正しく設定していなかったか、気づいていない何かをしています。どんな助けでも大歓迎です! 編集して詳細を追加 init関数を試しても、それが機能しない:https : //gist.github.com/anonymous/6db5af892a4cf4fb029655167d7002a4 また、<title>からの参照をすべて削除しましたがheader.php、実際のサイトタイトルはまだソースに表示されています。

6
プラグイン/テーマによって作成されたPHPファイルを保存する場所
プラグインまたはテーマは、後でそれを含めることができるphpファイルを作成する必要がある場合があります。たとえば、captchaプラグイン、またはtwig / smartyなどのテンプレートシステム(私の場合、ウィジェットのコレクション用の単純なテンプレートエンジンです)。 このファイルはどこに作成する必要がありますか? 私が考えることができる唯一の場所はですがwp-content/uploads/、それはちょうど正しく聞こえません:) ファイルを作成できる安全な場所はありますか?WordPress /プラグイン/テーマの更新時にファイルが削除される心配はありませんか? 1つの解決策は、themes / pluginsディレクトリに子テーマ/ディレクトリを作成することです...

1
srcsetのないthe_post_thumbnail?
WordPress 4.4ではsrcset、the_post_thumbnail関数の使用時に複数の画像サイズが追加されます。srcsetなしで1つの画像サイズのみを取得することは可能ですか? srcsetすべての画像から無効にするフィルターを追加することは可能であることを理解していますがsrcset、特定のサムネイルサイズを呼び出すときのみ(たとえば、画像全体のサイズを呼び出すときのみ)を無効にしたいと思います。

2
ウィジェットフィールドデータを配列として保存する方法は?
私はウィジェットを作成しています、それは約10のIDを格納する必要があります。現在、次のフィールドメソッドを使用して、各IDを個別のフィールドに格納しています。ワードプレスでは、各フィールドのデータを個別に保存します。配列を使用して、たとえばすべてのフィールドのデータをワードプレスの1行だけに格納することは可能ですか? <input class="widefat" id="<?php echo $this->get_field_id('item1_id'); ?>" name="<?php echo $this->get_field_name('item1_id'); ?>" value="<?php echo $instance['item1_id']; ?>" /> <input class="widefat" id="<?php echo $this->get_field_id('item2_id'); ?>" name="<?php echo $this->get_field_name('item2_id'); ?>" value="<?php echo $instance['item2_id']; ?>" />

1
何らかのテーマの依存関係管理はありますか?
私は他の数人の人とWordpressテーマを開発していて、プラグインを追加するという問題に直面しています。テーマが機能するように、インストールしたプラグインとプラグインに設定した設定について他の開発者に伝えました。 プラグインをテーマに関連付ける方法があるのか​​と思っていたので、個人がテーマを受け取ったときに、テーマはどのプラグインが必要であるかを認識し、自動的にプラグインとその正しいバージョンをインストールできます。 私は、Wordpressテーマのある種の依存関係管理を探していると思います。そこにそのようなものはありますか?

3
Wordpress APIメニュー/サブメニューの順序
Wordpress 3.4.2とDavid FrameworkによるOptions Frameworkの開発バージョンを使用して、子テーマを開発しています。これは私の最初のテーマで、私はこれに比較的慣れていないので、Wordpress Codexを調べて、APIへの登録アイテムをチェックアウトしました。 テーマ外の外部ファイルを改ざんすることなく、[ テーマのオプション]ページが[ 外観 ]メニューの階層内のどこにあるかを再調整する方法があるかどうか疑問に思っていました。最初の画像ですが2番目の画像が好きです。 私はあなたが(のようないずれかのメニューを作成することができます知っている外観 ]タブ、プラグイン、ユーザーまたはサブメニュー(など)のテーマ、ウィジェット、メニューなど)が、どのように私は2番目、サブメニューの発言権を設定するに行きますか上から? 私が収集したものから、どこかで呼び出されている注文があり、functions.phpファイル内の他の追加のページがそれらの後に配置されていますか? 私のfunctions.phpファイルで: // Add our "Theme Options" page to the Wordpress API admin menu. if ( !function_exists( 'optionsframework_init' ) ) { define( 'OPTIONS_FRAMEWORK_DIRECTORY', get_template_directory_uri() . '/inc/' ); require_once dirname( __FILE__ ) . '/inc/options-framework.php'; } ありがとう。

5
after_setup_themeは常に実行されます
一部の教員向けに子テーマを設定しています。テーマの一部として、テーマがアクティブ化されたときにいくつかのプラグインをアクティブ化してください。したがって、当然のことながら、私はafter_setup_themeアクションを使用して、セットアップ関数を呼び出しました。EVERYリクエスト(管理者など)で実行されることを除いて、それは素晴らしい働きをします。これをセットアップ関数の最後に追加することでこれを証明しました: echo '<script type="text/javascript">alert("This action was run")</script>'; そしてその結果、すべての管理リクエストとすべてのフロントエンドリクエストでJavaScriptアラートを取得します(私はネットワークを設定しているので、このテーマがアクティブでないサイトでは明らかに機能を実行していません)。 だから問題は、これはバグですか?どういうわけか私は何か間違ったことをしていますか?これが私が使用している完全なコードです: add_action( 'after_setup_theme', 'fwp_setup' ); function fwp_setup(){ // -- Unrelated code remove for the sake of brevity require_once($_SERVER['DOCUMENT_ROOT'].'/wp-admin/includes/plugin.php'); activate_plugin('enable-media-replace/enable-media-replace.php'); activate_plugin('seo-image/seo-friendly-images.php'); activate_plugin('w3-total-cache/w3-total-cache.php'); echo '<script type="text/javascript">alert("This action was run")</script>'; } どんな洞察もいただければ幸いです!

3
ワークフローにバージョン管理を追加するにはどうすればよいですか?
私はテーマを開発していますが、たくさんあります。PSDが渡され、HTML / CSSをコード化し、コードをWordpressにスラップし、QCが得られたら修正します。ライブになると、クライアントは通常のようにブログ投稿を編集したり、カスタムプラグインを使用して写真をアップロードしたりできます。 テーマやページ/投稿コンテンツに変更を加える必要がある場合があります。つまり、それらをライブにするか、クライアントが承認するために開発環境にサイトをダウンロードしてセットアップする必要があります。バックアップもバージョン管理もありません。これを変更する必要があることに気付きました。 GitとMercurialが提案されているので、これらのツールを利用したいのですが、ワークフローにどのように組み込むかについて混乱しています。 開発サーバー上のサイトへのすべての変更を要求し、承認後にそれらをライブでプッシュしますか?ブログの投稿についてはどうですか?開発者に投稿を書いて変更をライブにプッシュするのはやり過ぎのようですが、ライブサイトで編集されたデータベースを同期するにはどうすればよいですか?インターネットを調べました。いくつかのガイダンスをいただければ幸いです。

1
functions.phpでグローバル関数の代わりにクラスを使用する
私が見た多くのテーマ(TwentyElevenを含む)とオンラインで見つけた例ではfunctions.php、テーマのファイルを作成すると、すべての機能がグローバルスコープで宣言されます。明確にするために、これは一般的な関数ファイルは次のようになります。 function my_theme_do_foo() { // ... } function my_theme_do_bar() { // ... } add_action( 'foo_hook', 'my_theme_do_foo' ); クラスが使用された場合、物事は少し「カプセル化」できるように思えます。 class MyTheme { function do_foo() { // ... } function do_bar() { // ... } } $my_theme = new MyTheme(); add_action( 'foo_hook', array( &$my_theme, 'do_foo' ) ); (私の謙虚な目で)2番目のアプローチの利点: 短い関数名 インスタンス変数へのアクセス(最大の利点IMO) グローバル機能なし 欠点: …

4
wp_redirect()-すでに送信されたヘッダー
wp_redirect()ページでサインアップフォームを正常に送信した後、ユーザーをリダイレクトするために使用しようとしています。 機能しておらず、次のエラーが表示されます。 警告:ヘッダー情報を変更できません-ヘッダーは/ Applications / MAMP / htdocs / theme / wp-の(/Applications/MAMP/htdocs/theme/wp-content/themes/test/header.php:10で開始された出力)によってすでに送信されています1178行目のinclude / pluggable.php 私は以前に出力が既にあったことを理解しています、それがそれが機能していない理由ですが、私はこれを機能させる方法の手がかりがありません。 サインアップフォームは関数によってレンダリングされ、my functions.php内の別の関数によって送信されます。 if ( isset( $_POST['subscribe'] ) ) { // Submits the form and should then redirect wp_redirect("/thank-you/"); exit; } 次に、これらの関数の両方を使用して、サインアップフォームを表示します。 それは最善のことではないようです。それを行うアクションを作成する必要がありますが、それを実装する方法がわかりません。私が見つけたほとんどのチュートリアルは、同じページに結果を直接表示し、追加のリダイレクトを必要としません。多分それが、彼らがfunctions.php内の関数を操作している理由です

1
ログインページのスタイルシートをエンキューし、head要素に表示する
ログインページのスタイルをテーマに設定します。非常に簡単: add_action( 'login_enqueue_scripts', function() { wp_enqueue_style( 'TEST', get_template_directory_uri() . '/css/login.css' ); }); 残念ながら、期待どおりに動作しません。link要素がに表示されてbody非常に遅く、ログインページの。 レンダリングされた出力: <link rel='stylesheet' id='TEST-css' href='http://themes.wp/t5-theme-base/css/login.css?ver=3.9-alpha' type='text/css' media='all' /> <div class="clear"></div> </body> </html> これは間違っていheadます。リンク要素をどのように印刷できますか?

2
テーマカスタマイザ-設定順序
1つのセクションに5つを超える設定を追加すると、設定の順序がおかしくなります。 例えば: // Link color $wp_customize->add_setting( 'tonal_'.$themeslug.'_settings[link_color1]', array( 'default' => $themeOptions['link_color1'], 'type' => 'option', 'sanitize_callback' => 'sanitize_hex_color', 'capability' => 'edit_theme_options', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'tonal_'.$themeslug.'_settings[link_color1]', array( 'label' => __( 'Link color1', 'tonal' ), 'section' => 'colors', 'settings' => 'tonal_'.$themeslug.'_settings[link_color1]', 'choices' => '#ffffff' ) ) ); …

5
投稿コンテンツから最初の画像を取得します(例:ホットリンクされた画像)
私はこのコードをcodexから直接使用しています。 function echo_first_image ($postID) { $args = array( 'numberposts' => 1, 'order'=> 'ASC', 'post_mime_type' => 'image', 'post_parent' => $postID, 'post_status' => null, 'post_type' => 'attachment' ); $attachments = get_children( $args ); //print_r($attachments); if ($attachments) { foreach($attachments as $attachment) { $image_attributes = wp_get_attachment_image_src( $attachment->ID, 'thumbnail' ) ? wp_get_attachment_image_src( $attachment->ID, 'thumbnail' ) …

3
テーマのプラグ可能な機能をオーバーライドする方法は?
私が遭遇したすべてのドキュメントは、プラグインを介してプラグイン可能な関数をオーバーライドすることについて説明しています。 代わりにテーマ開発を行っている場合はどうなりますか? 私のfunctions.phpにはget_user_by()、で定義されている関数をオーバーライドする別のファイルが必要ですpluggable.php。 if( function_exists() )呼び出しを省略すると、「再宣言できません...」というエラーが表示されます。 if( function exists() )呼び出しを含めると、エラーは発生しませんが、プラグイン可能なバージョンが存在するため、もちろん、関数は無視されます。 WordPressの起動順序に関するDominicのすばらしい投稿に基づいて、テーマなどの前にpluggable.php読み込まれることが明らかであるfunctions.phpため、エラーが説明されています。 だから問題は-テーマと一緒にバンドルまたはインストールする必要のあるプラグインを作成することに頼らずに、テーマ内からその優れたプラグイン可能なアーキテクチャをどのように利用できるかということです。 追記:だから、議論はテーマがプラグインがすることをしようとするべきではないということだと思われます。しかし、その議論は(4桁のトラック番号によると)4年以上前のものです。今日のテーマ開発風景の複雑なトポロジーを考えると、この哲学がまだ当てはまるかどうか、何人かのヘビーヒッターから聞いてみたいです。それ以来、私たちが進化してきたと信じたいです。 コンテキスト:多くのカスタムメタデータ、管理バックエンドのカスタマイズ、ログイン/認証プロセス、機能を備えた、お客様向けの1回限りのCMSソリューションを開発しています。そしてもちろん、設計コンポーネントがあります- 。テーマ部分の出番だ事実は、これらは単純にしているされていない再利用可能なコンポーネント-彼らは別のクライアントに適用されることはありません、彼らはGPLの下に置かれることはありませんし、オープンソース化し、彼らが最もあり確かに他のWordPressデプロイメントに配布/インストールしないでください。せいぜい、将来のプロジェクトで活用するいくつかのベストプラクティスがありますが、それは厳密には参照/コピーアンドペーストジョブです。 これは私にとってプラグインの使用例のようには聞こえません。テーマがインストールされ、おそらくTwenty Elevenの子テーマ、スタンドアロンである可能性があります。そのfunctions.phpは、インクルードのボートロードで呼び出し、それぞれが問題のCMSの異なる側面を処理します。次に、テーマテンプレートファイルは、インクルードで定義されているカスタムの「テンプレートタグ」を使用します。プラグインなどの依存関係がアクティブ化されているテーマファイルを使用したくありません。システムに複雑さを組み込むのは意味がありません。もちろん、私はそれを必須プラグインフォルダに入れることができますが、それでもハックのように感じられます-現在、このプロジェクト用に行われたカスタマイズに関係するすべてのものがに含まれていwp-content/themes/my-theme/ます。また、一部のプラグインフォルダーでコンテンツを検索することも検討する必要はありません。 誤解しないでください。プラグインが大好きで、プラグインを使用して作成しています。そして、プラグインがサードパーティであり、妥当な期間内に展開できる可能性のあるベストプラクティスをはるかに超えている場合、私はプラグインをこのような高度にカスタマイズされたテーマ開発と組み合わせて使用​​します。ただし、1回限りのシナリオでコア機能を変更する必要がある場合は、アクションフック、フィルターフックに切り替え、ユーザーおよびプラグイン可能な機能に依存して、ユーザー側と認証側の両方にも対応できるようにしたいと考えています。

2
add_action( 'init')とadd_action( 'wp_enqueue_scripts')を使用する場合
私のテーマのfunctions.phpでは、jqueryが読み込まれる場所を制御するためにadd_actionを呼び出しています(テーマの他のスクリプトと共にフッターにあります)。 私が抱えている問題は、add_action( 'wp_enqueue_scripts')を使用すると、プラグインがロードされていない場合にのみ起動するように見えることです。ただし、add_action( 'init')メソッドはすべてのケースで機能します。 理由は思い出せませんが、この場合はadd_action( 'wp_enqueue_scripts')をお勧めします。それが本当である場合、どのようにしてすべての場合に機能させることができますか? functions.php内 //if(!is_admin()){add_action('init', 'my_theme_init');} //THIS WORKS ALL THE TIME //add_action('wp_enqueue_scripts', 'my_theme_init'); //THIS ONLY WORKS WHEN NO PLUGINS PRESENT if(!is_admin()) { require_once(TEMPLATEPATH . '/functions_public.php'); } functions_public.php内 function my_theme_init() { /* PREVENT DUPLICATE COPIES OF JQUERY FROM PLUGINS **************************************************/ wp_deregister_script('jquery'); /* LOAD THE LOCAL WORDPRESS COPY OF …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.