「snow_monkey_template_part_render」の検索結果

15件の結果を表示中 - 1 - 15件目 (全241件中)
  • 投稿者
    検索結果
  • #143726
    まーちゅう
    参加者
    373

    snow_monkey_template_part_render_<slug>
    snow_monkey_pre_template_part_render_<slug>
    のどちらかのフィルターフックを使用されてはどうでしょうか?

    /**
     * @param $html テンプレートパーツの出力HTML
     * @param $name テンプレートパーツの名前
     * @param $vars テンプレートパーツのリクエスト配列
     */
    add_filter(
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary/title/title',
    	function( $html ) {
    		$html = str_replace(
    			'書き換え前の文字列',
    			'書き換え後の文字列',
    			$html
    		);
    		return $html;
    	},
    	10
    );
    /**
     * @param $html テンプレートパーツの出力HTML
     * @param $name テンプレートパーツの名前
     * @param $vars テンプレートパーツのリクエスト配列
     */
    add_filter(
    	'snow_monkey_pre_template_part_render_template-parts/loop/entry-summary/title/title',
    	function( $html ) {
    		return 'New HTML';
    	},
    	10
    );
    2
    いいねをした人:
    #143279
    アバター画像キタジマ タカシ
    参加者
    2501

    投稿一覧はそのままで詳細ページでの表示だけ、ということは、あくまで「その記事の装飾としての画像を変えたい」ということだと思ったので、そのやり方を考えてみました。

    post_thumbnail_html で詳細ページだけ表示を変える場合、OGP 画像や関連記事などに使用される画像も変わってしまう可能性があるのでそれ以外を使ったやり方にしてみました。

    「アイキャッチ画像の表示」の選択肢によって対応が変わるので、一応それぞれのパターンについて考えてみました。

    ### 「アイキャッチ画像の位置」が「ページヘッダー」のとき

    // テンプレートパーツに画像の URL を差し替えるオプションがあるのでそれを使う。
    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/common/page-header',
    	function( $args ) {
    		$default_image_url = get_template_directory_uri() . '/wp-content/uploads/2024/12/XXXX.jpeg';
    		$args['vars']['_image'] = '<img src="' . esc_url( $default_image_url ) . '" alt="' . esc_attr( get_the_title() ) . '">';
    		return $args;
    	}
    );

    ### 「アイキャッチ画像の位置」が「コンテンツの上」のとき

    // オプションは無いのでテンプレートパーツ自体を書き換える。
    add_filter(
    	'snow_monkey_template_part_render_template-parts/content/eyecatch',
    	function( $html ) {
    		if ( ! $html ) {
    			return $html;
    		}
    
    		$default_image_url = get_template_directory_uri() . '/wp-content/uploads/2024/12/XXXX.jpeg';
    		$default_image     =
    		ob_start();
    		?>
    		<div class="c-eyecatch">
    			<img src="<?php echo esc_url( $default_image_url ); ?>" alt="<?php echo esc_attr( get_the_title() ); ?>">
    		</div>
    		<?php
    		return ob_get_clean();
    	}
    );
    1
    いいねをした人:
    TarCoon☆CarToon
    参加者
    59

    因みに修正した、 My Snow Monkeyのphpは以下になります。

    <?php
    /**
     * Plugin name: My Snow Monkey
     * Description: このプラグインに、あなたの Snow Monkey 用カスタマイズコードを書いてください。
     * Version: 0.2.5
     * Update URI: https://snow-monkey.2inc.org
     *
     * @package my-snow-monkey
     * @author inc2734
     * @license GPL-2.0+
     */
    
    /**
     * Snow Monkey bbPress Support でリダイレクトさせないようにする。
     */
    // add_filter( 'snow_monkey_bbpress_support_prevent_admin_access', '__return_false' );
    
    /**
     * Snow Monkey 以外のテーマを利用している場合は有効化してもカスタマイズが反映されないようにする
     */
    $theme = wp_get_theme( get_template() );
    if ( 'snow-monkey' !== $theme->template && 'snow-monkey/resources' !== $theme->template ) {
    	return;
    }
    
    /**
    * Directory url of this plugin
    *
    * @var string
    */
    define( 'MY_SNOW_MONKEY_URL', untrailingslashit( plugin_dir_url( __FILE__ ) ) );
    
    /**
    * Directory path of this plugin
    *
    * @var string
    */
    define( 'MY_SNOW_MONKEY_PATH', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
    
    /**
    * Display message in console.log if this plugin is enabled.
    */
    add_action(
    	'wp_footer',
    	function () {
    		if ( is_user_logged_in() ) :
    			?>
    			<script>console.log( 'My Snow Monkey plugin is active' );</script>
    			<?php
    		endif;
    	}
    );
    
    /**
    * WooCommerce が生成した各ページのページヘッダー画像としてデフォルトページヘッダー画像を使用する
    */
    add_filter(
    	'snow_monkey_pre_page_header_image_url',
    	function( $url ) {
    		if ( class_exists( '\woocommerce' ) && ( is_woocommerce() || is_cart() || is_checkout() || is_account_page() ) ) {
    			if ( is_singular() && has_post_thumbnail() ) {
    				return wp_get_attachment_image_url( get_post_thumbnail_id(), 'xlarge' );
    			} else {
    				$shop_page_id = wc_get_page_id( 'shop' );
    				if ( has_post_thumbnail( $shop_page_id ) ) {
    					return wp_get_attachment_image_url( get_post_thumbnail_id( $shop_page_id ), 'xlarge' );
    				}
    			}
    			return get_theme_mod( 'default-page-header-image' );
    		}
    		return $url;
    	},
    	11
    );
    
    /**
     * WooCommerce が生成した各ページにページヘッダーを表示する
     */
    add_filter(
    	'snow_monkey_is_output_page_header',
    	function( $return ) {
    		if ( class_exists( '\woocommerce' ) && ( is_woocommerce() || is_cart() || is_checkout() || is_account_page() ) ) {
    			return true;
    		}
    		return $return;
    	},
    	11
    );
    
    /**
     * パララックスエフェクト用の CSS, JS を読み込み
     *
     * @return void
     */
    add_action(
    	'wp_enqueue_scripts',
    	function() {
    		if ( ! wp_script_is( 'snow-monkey-blocks/background-parallax', 'registered' ) ) {
    			wp_enqueue_script(
    				'snow-monkey-blocks/background-parallax',
    				SNOW_MONKEY_BLOCKS_DIR_URL . '/dist/js/background-parallax.js',
    				[],
    				filemtime( SNOW_MONKEY_BLOCKS_DIR_PATH . '/dist/js/background-parallax.js' ),
    				true
    			);
    		}
    	}
    );
    
    /**
     * ページヘッダーにパララックスエフェクトを反映
     *
     * @param string $html
     * @param string $slug
     * @return string
     */
    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug ) {
    		if ( 'template-parts/common/page-header' !== $slug ) {
    			return $html;
    		}
    
    		$html = str_replace(
    			'class="c-page-header"',
    			'class="c-page-header js-bg-parallax"',
    			$html
    		);
    
    		$html = str_replace(
    			'class="c-page-header__bgimage"',
    			'class="c-page-header__bgimage js-bg-parallax__bgimage"',
    			$html
    		);
    
    		$html = str_replace(
    			'class="c-container"',
    			'class="c-container js-bg-parallax__content"',
    			$html
    		);
    
    		return $html;
    	},
    	10,
    	2
    );
    
    /**
     * ショーケースウィジェットにパララックスエフェクトを反映
     *
     * @param string $content
     * @param array $args
     * @return string
     */
    add_filter(
    	'inc2734_wp_awesome_widgets_render_widget',
    	function( $content, $args ) {
    		if ( false === strpos( $args['widget_id'], 'inc2734_wp_awesome_widgets_showcase' ) ) {
    			return $content;
    		}
    
    		$content = str_replace(
    			'wpaw-showcase ',
    			'wpaw-showcase js-bg-parallax ',
    			$content
    		);
    
    		$content = str_replace(
    			'wpaw-showcase__bgimage',
    			'wpaw-showcase__bgimage js-bg-parallax__bgimage',
    			$content
    		);
    
    		$content = str_replace(
    			'wpaw-showcase__inner',
    			'c-container js-bg-parallax__content wpaw-showcase__inner',
    			$content
    		);
    
    		return $content;
    	},
    	10,
    	2
    );
    
    /**
     * @param array active_post_types
     * @return array
     */
    add_filter(
    	'snow_monkey_member_post_active_post_types',
    	function( $active_post_types ) {
    		return [ 'post', 'page' ]; // 制限機能を付与したい投稿タイプを指定
    	}
    );
    
    /**
     * 再利用可能ブロックのショートカット作成
     */
    add_action( 'admin_menu', 'add_custom_menu' );
    function add_custom_menu(){
    	add_menu_page( '再利用ブロック', '再利用ブロック', 'manage_options', 'edit.php?post_type=wp_block', '', 'dashicons-portfolio', 9 );
    }
    
    /**
     * WordPressのサイドバーなどに表示されるウィジェットのタイトルを「h2」タグから他のタグ(例えば「div」タグ)へ変更する方法
     */
    add_filter(
    	'dynamic_sidebar_params',
    	function( $params ) {
    		$params[0]['before_title'] = str_replace( '<h2 ', '<div ', $params[0]['before_title'] );
    		$params[0]['after_title']  = str_replace( '/h2>', '/div>', $params[0]['after_title'] );
    		return $params;
    	}
    );
    
    /**
     * WooCommerceの商品ページに「SNS」シェアボタンを追加
     */
    add_filter(
    	'snow_monkey_get_template_part_args_templates/view/woocommerce-single-product',
    	function( $args ) {
    		$args['vars']['_display_top_share_buttons'] = true; // 上部に出したいとき
    		$args['vars']['_display_bottom_share_buttons'] = true; // 下部に出したいとき
    		return $args;
    	}
    );
    0
    いいねをした人: 居ません
    #142054
    GONSY
    参加者
    846

    過去のフォーラムにズバリな回答がありました。
    my-snow-monkey.php に追加してみてください。

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug ) {
    		if ( 'template-parts/content/related-posts' === $slug ) {
    			return preg_replace(
    				'|<span>.*?関連記事|ms',
    				'<span>Related works',
    				$html
    			);
    		}
    		return $html;
    	},
    	10,
    	2
    );
    4
    いいねをした人:
    アバター画像キタジマ タカシ
    参加者
    2501

    調査してみたところ、2つの要因がありました。

    1つ目は、Snow Monkey のパンくずはページのクエリを参照してリストを生成しているということです。例えば、詳細ページ用のリストはページが is_single() のときに生成され、アーカイブページ用のリストはページが is_archive() のときに生成されます。ループの中だとしてもページのクエリは is_arhive()true になるので、アーカイブページ用のリストが出力されてしまう、ということになります。

    2つ目は、Snow Monkey のパンくずは一度生成したリストをキャッシュするようになっているので、↑の対策をしたとしてもキャッシュされたパンくずを出力してしまうために同じリストが繰り返し表示されてしまうということです。

    上記2つに対して対策してみたコードが下記になります。

    /**
     * ループのメタ情報部分にパンくずを追加する。
     */
    add_filter(
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary/meta/meta',
    	function( $html ) {
    		query_posts( array( 'p' => get_the_ID() ) ); // これが重要。クエリを記事用に再生成する。
    		ob_start();
    		\Framework\Helper::get_template_part( 'template-parts/common/breadcrumbs' );
    		$breadcrumbs = ob_get_clean();
    		wp_reset_query(); // クエリをもとに戻す
    		return $html . $breadcrumbs;
    	}
    );
    
    /**
     * パンくずを都度生成するようにする。
     */
    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/common/breadcrumbs',
    	function( $args ) {
    		$breadcrumbs       = new \Inc2734\WP_Breadcrumbs\Bootstrap();
    		$breadcrumbs_items = $breadcrumbs->get();
    		// $breadcrumbs_items = apply_filters( 'snow_monkey_breadcrumbs', $breadcrumbs_items ); // 必要ならコメントアウト
    
    		$args['vars']['_items'] = $breadcrumbs_items;
    		return $args;
    	}
    );

    なんとなくあんまりきれいな処理ではない気がするので、気になるようなら自作したほうが良いかもしれません…。

    0
    いいねをした人: 居ません
    #141908
    GONSY
    参加者
    846

    グローバルヘッダーでデザインが「シンプル」なら、これですかね。
    snow_monkey_template_part_render_templates/layout/header/simple
    トピックのはじめに提示されているコードは、そのまま活かせると思います。

    3
    いいねをした人:
    #141899
    GONSY
    参加者
    846

    snow_monkey_template_part_render_template-parts/content/entry/header/header
    は、投稿の詳細ページのタイトル部分(以下画像の青枠)になりますが、間違いないでしょうか?
     

     
    ご提示のコードで、ショートコードが正しく認識できていれば挿入・表示は可能だと思います。

    ヘッダー部にショートコードを挿入したく、

    ヘッダー部の場所がいまいちわかりませんでした。
    サイトのスクリーンショットもしくはワイヤーなど、挿入したい箇所を具体的にご提示されたほうが、適切な回答が得られると思います。

    3
    いいねをした人:
    アバター画像キタジマ タカシ
    参加者
    2501

    シンプルに文字列置換しているだけのコードなので、置換処理を追加すれば大丈夫だと思います。

    // template-parts/nav/drawer の HTML を書き換え
    add_filter(
    	'snow_monkey_template_part_render_template-parts/nav/drawer',
    	function( $html ) {
    		$html = str_replace(
    			"placeholder=\"検索 &hellip;\"",
    			"placeholder=\"検索できます\"",
    			$html
    		);
    
    		$html = str_replace(
    			"<button class=\"c-input-group__btn\">検索</button>",
    			"<button class=\"c-input-group__btn\">Search</button>",
    			$html
    		);
    
    		return $html;
    	}
    );
    0
    いいねをした人: 居ません
    #141212
    アバター画像キタジマ タカシ
    参加者
    2501

    GONSY さんの書き込みに気づかずに僕もサンプルコードを書いていたので、ここで供養しておきます…(僕はページヘッダーのテンプレートパーツを置換しました)。

    add_filter(
    	'snow_monkey_template_part_render_template-parts/content/entry/header/header',
    	function( $html ) {
    		return str_replace(
    			'</header>',
    			'<p class="notice_use_affiliate">※当サイトではアフィリエイト広告を利用しています</p></header>',
    			$html
    		);
    	}
    );

    ページヘッダーの内側にもアクションフック用意しておいたほうが良いかも?と思いました。

    2
    いいねをした人:
    #141210
    GONSY
    参加者
    846

    ちょうど似たようなことをしていたので、参考になれば幸いです。
     

    add_filter(
    	'snow_monkey_template_part_render_template-parts/content/entry-meta',
    	function( $html ) {
    		$html = str_replace(
    			'</ul>', // 投稿メタ情報:<ul class="c-meta"></ul>のうしろ
    			'</ul><p class="notice_use_affiliate">※当サイトではアフィリエイト広告を利用しています</p>', 
    			$html
    		);
    		return $html;
    	}
    );
    3
    いいねをした人:
    #141146
    アバター画像キタジマ タカシ
    参加者
    2501

    ヘッダーレイアウトは何に設定されていますか?
    僕が書いたコードはヘッダーレイアウトが「中央ロゴ」の場合に適用されるものになります。フック名: snow_monkey_template_part_render_templates/layout/header/center

    もし別のヘッダーレイアウトの場合はフック名が変わります。

    1行:snow_monkey_template_part_render_templates/layout/header/1row
    2行:snow_monkey_template_part_render_templates/layout/header/2row
    シンプル:snow_monkey_template_part_render_templates/layout/header/simple
    左:snow_monkey_template_part_render_templates/layout/header/left

    1
    いいねをした人:
    #141128
    アバター画像キタジマ タカシ
    参加者
    2501

    ヘッダーコンテンツを使うとすれば、CSS で position: sticky にするのが簡単だと思います。

    .p-header-content.p-header-content--sm {
      position: sticky;
      top: 60px; /* ヘッダーの高さを指定 */
      z-index: 2;
    }

    ただ、sticky なので、コンテンツエリアに含まれているヘッダーコンテンツは、ページがスクロールされてフッターがでてくると、それに押し上げられる形でスクロールされてしまいます。どうしても常に表示させたいということであれば、ヘッダーコンテンツを使わずに、フックでヘッダーの中に HTML を追加する形のほうが良いかもです。

    /**
     * ヘッダーレイアウトが中央の場合
     */
    add_filter(
    	'snow_monkey_template_part_render_templates/layout/header/center',
    	function( $html ) {
    		$html = str_replace( '</header>', '<div>追加したい HTML</div></header>', $html );
    		return $html;
    	}
    );
    1
    いいねをした人:
    #140462
    アバター画像キタジマ タカシ
    参加者
    2501
    snow_monkey_template_part_render_template-parts/content\entry\header\header
    

    snow_monkey_template_part_render_template-parts/content/entry/header/header
    

    でどうですかね?

    1
    いいねをした人:
    #130057

    返信が含まれるトピック: iPadでもPCと同じ表示にする方法

    read
    参加者
    16

    ご教授いただきましてありがとうございます。

    私の知識が足りず、どうしても上手くいきません・・・
    お忙しいところ質問を重ねまして申し訳ございません。
    タブレットの場合ではなく、「スマホの場合か、ウィンドウサイズ680以上の場合 」で設定する場合なら、どのようなコードになりますか?

    add_filter(
    ‘snow_monkey_template_part_render_template-parts/common/head’,
    function( $html ) {
    // 既存のメタタグを削除
    $html = preg_replace( ‘|<meta name=”viewport”[^>]+?>|s’, ”, $html );

    if ( スマホの場合か、ウィンドウサイズ680以下の場合に限り ) {
    // メタタグを追加
    $html .= ‘<meta name=”viewport” …省略…>’;
    } else {
    // それ以外
    $html .= ‘<meta name=”viewport” …省略…>’;
    }

    return $html;
    }
    );

    0
    いいねをした人: 居ません
    #130002

    返信が含まれるトピック: iPadでもPCと同じ表示にする方法

    アバター画像キタジマ タカシ
    参加者
    2501

    取り急ぎfunction add_meta_in_head() 〜でviewportの書き換えをしようとしてみましたが、
    教えていただいたviewport 用メタタグを消すコードが干渉して、
    <meta name=”viewport”〜が消えてしまいます・・・

    メタタグを消す関数とメタタグを追加する関数を別々にせずに、同じ関数内で処理すれば大丈夫なのではないかと思います。

    初歩的な質問で申し訳ございませんが、
    ・タブレットの場合だけ:<meta name=”viewport” content=”width=1280″>
    ・それ以外の場合は置き換えない
    といったことは可能でしょうか?

    「タブレットの場合だけ」をどうやって判定するのかちょっと僕もわからないのですが、コード的には下記のような感じになると思います。

    add_filter(
    	'snow_monkey_template_part_render_template-parts/common/head',
    	function( $html ) {
    		// 既存のメタタグを削除
    		$html = preg_replace( '|<meta name="viewport"[^>]+?>|s', '', $html );
    
    		if ( タブレットの場合 ) {
    			// メタタグを追加
    			$html .= '<meta name="viewport" ...省略...>';
    		} else {
    			// それ以外
    			$html .= '<meta name="viewport" ...省略...>';
    		}
    
    		return $html;
    	}
    );
    1
    いいねをした人:
15件の結果を表示中 - 1 - 15件目 (全241件中)

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。