タグ付けされた質問 「conditional-content」


8
ショートコードが存在する場合のエンキュースクリプト/スタイル
プラグインで使用するためのスクリプトおよび/またはスタイルを登録/エンキューするアイデアの方法は何ですか? 最近、ユーザーのアバター/グラバターにショートコードを追加するためのシンプルなプラグインを作成しました。アバターを表示するためのさまざまなスタイルオプション(正方形、円形など)があり、CSSをショートコード自体に直接配置することにしました。 ただし、ページでショートコードが使用されるたびにcssが繰り返されるため、これは良いアプローチではないことがわかりました。私はこのサイトで他のいくつかのアプローチを見てきましたが、wp codexには独自の2つの例さえあります。 私が現在知っている方法は次のとおりです。 方法1:ショートコードに直接含める- これはプラグインで現在行っていることですが、コードを繰り返しているので良くないようです。 class My_Shortcode { function handle_shortcode( $atts, $content="" ) { /* simply enqueue or print the scripts/styles in the shortcode itself */ ?> <style type="text/css"> </style> <?php return "$content"; } } add_shortcode( 'myshortcode', array( 'My_Shortcode', 'handle_shortcode' ) ); 方法2:スクリプトまたはスタイルを条件付きでキューに入れるためにクラスを使用する class My_Shortcode { static $add_script; …

5
特定のページテンプレートのwpエンキュースタイル
テーマを作成中です。ページテンプレートを使用してランディングページを追加したいと思います。特定のページテンプレートのスタイルまたはjsをキューに登録する方法を示す場所が見つかりません。助言がありますか。例 ランディングページ1-Landing-page-template-one.phpには、ブログやホームページとはまったく異なるスタイルとjsが必要です。

4
特定のショートコードまたはウィジェットが存在する場合にのみスクリプトをロードする
特定のショートコードが存在する場合、ヘッダーにスクリプトを追加できるように、ロードする前にページ/投稿コンテンツをフィルタリングする方法が必要でした。多くの検索の後、私はこれをhttp://wpengineer.comで見つけました function has_my_shortcode($posts) { if ( empty($posts) ) return $posts; $found = false; foreach ($posts as $post) { if ( stripos($post->post_content, '[my_shortcode') ) $found = true; break; } if ($found){ $urljs = get_bloginfo( 'template_directory' ).IMP_JS; wp_register_script('my_script', $urljs.'myscript.js' ); wp_print_scripts('my_script'); } return $posts; } add_action('the_posts', 'has_my_shortcode'); これは絶対に素晴らしいことであり、まさに私が必要としていたことをしました。 今、私はそれをもう少し拡張し、サイドバーにも同じことをする必要があります。特定のウィジェットタイプ、ショートコード、コードスニペット、またはスクリプトをロードする必要がある場合に特定するために機能する他の方法によるものです。 問題は、サイドバーが読み込まれる前にサイドバーのコンテンツにアクセスする方法がわからないことです(問題のテーマにはいくつかのサイドバーがあります)

3
特定のページのみのスタイルシートを条件付きでエンキューするにはどうすればよいですか?
始める前に、ページ/投稿のコンテンツに基づいてスクリプトを条件付きでエンキューする方法を対象とする本当に良い記事があることを認めたいと思います。 WordPressプラグイン開発-投稿で必要な場合にのみ、条件付きでCSSとJavaScriptを含める方法 WordPressマスターのようにJavaScriptをロードする方法 これらは素晴らしいですが、私がやりたいことよりもはるかに進んでいます。 答えは組み込みis_page()関数(codex)を使用しているように感じますが、それを使用しようとすると、サイトが壊れるか、機能しません。 条件付きロジックを間違った場所で実行しているだけだと思います。 これが、functions.phpに追加しようとしたものです。 function wpse39130_register_more_stylesheets() { wp_register_style( 'stylesheet_name', get_stylesheet_directory_uri() . '/stylesheet.css' ); } add_action( 'init', 'wpse39130_register_more_stylesheets' ); function wpse39130_conditionally_enqueue_my_stylesheet() { // only enqueue on product-services page slug if ( is_page( 'products-services' ) ) { wp_enqueue_style( 'stylesheet_name' ); } } add_action( 'wp_enqueue_scripts', 'wpse39130_conditionally_enqueue_my_stylesheet' ); 条件付きの部分を削除すると、スタイルシートが正常にキューに登録されるので、それが機能することがわかります。

6
functions.phpファイルに配置するとis_pageが機能しないのはなぜですか?
「Apple」というページがあり、そのページのID IDは2533です。 page.phpファイルには、次の行があります。 echo $bannerimg そして、functions.phpのこの関数: if ( is_page( '2533' ) ) { // also tested with 'Apple' $bannerimg = 'apple.jpg'; } elseif ( is_page( 'test' ) ) { $bannerimg = 'test.jpg'; } elseif ( is_page( 'admissions' ) ) { $bannerimg = 'admissions.jpg'; } else { $bannerimg = 'home.jpg'; } …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.