「snow_monkey_get_template_part_args」の検索結果

15件の結果を表示中 - 1 - 15件目 (全116件中)
  • 投稿者
    検索結果
  • #144121

    返信が含まれるトピック: ロゴのhtmlの書き換え方について

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

    子テーマで普通にテンプレートパーツを上書きすることももちろん可能ですが、今後のメンテナンスを考えると My Snow Monkey プラグインか、子テーマを使っているなら子テーマの functions.php にコードを書くのが良いです。

    下記でどうでしょうか?

    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/header/site-branding',
    	function( $args ) {
    		$args['vars']['_title_tag'] = 'p';
    		return $args;
    	}
    );
    1
    いいねをした人:
    #143991
    アバター画像otomeweb
    参加者
    27

    表現が乏しかったです
    右カラムの設定で、公開日を表示にすれば、公開日で、更新日を表示にすれば更新日で表示されるとおもってました

    > そのコードをここに共有してもらえますか?

    
    /** 
     * 最新用語を更新日でソートする
    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/common/entries/entries',
    	function( $args ) {
    		// 最近の投稿ブロックのとき
    		if ( 'snow-monkey-blocks/recent-posts' === $args['vars']['_context'] ) {
    			// 並び順を変更
    			$args['vars']['_posts_query'] = new \WP_Query(
    				array_merge(
    					$args['vars']['_posts_query']->query,
    					array(
    						'orderby' => 'modified',
    						'order'   => 'DESC'
    					)
    				)
    			);
    		}
    		return $args;
    	}
    );
    */
    0
    いいねをした人: 居ません
    #143430
    akosan
    参加者
    33

    過去のフォーラムに似た質問があり試したところ解決したのでトピックを閉じます。
    失礼しました。

    最近の投稿でのカテゴリーラベルの表示順について

    
    add_filter(
    'snow_monkey_get_template_part_args',
    function( $args ) {
    // 記事一覧カテゴリー以外のテンプレートの場合は無視
    if ( 'template-parts/loop/entry-summary/term/term' !== $args['slug'] ) {
    return $args;
    }
    
    // 投稿以外の場合は無視
    if ( 'post' !== $args['name'] ) {
    return $args;
    }
    
    $new_terms = array();
    $terms = get_the_terms( get_the_ID(), 'category' );
    foreach ( $terms as $term ) {
    $term_ids = get_ancestors( $term->term_id, 'category', 'taxonomy' );
    krsort( $term_ids );
    
    // チェックしたカテゴリーと先祖のカテゴリー情報をカテゴリーラベルとして使用
    foreach ( $term_ids as $term_id ) {
    $new_terms[ $term_id ] = get_term( $term_id, 'category' );
    }
    $new_terms[ $term->term_id ] = $term;
    }
    $args['vars']['_terms'] = $new_terms;
    
    return $args;
    }
    );
    
    1
    いいねをした人:
    #143290
    アバター画像キタジマ タカシ
    参加者
    2536

    あ、条件分岐が抜けていました…。is_single() で条件分岐させてください。

    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/common/page-header',
    	function( $args ) {
    		if ( ! is_single() ) {
    			return $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;
    	}
    );

    画像が表示されないのは上記コードの中で指定している画像の URL が正しくないからなので、実際に表示させたい画像の URL になるように、コードを修正してみてください。

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

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

    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
    いいねをした人:
    #142974
    GONSY
    参加者
    846
    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/title/title',
    	function( $args ) {
    		$args['vars']['_title_tag'] = 'h3';
    		return $args;
    	}
    );

    こちらを my-snow-monkey.php に追記してみてください。

    2
    いいねをした人:
    #142925

    返信が含まれるトピック: トップのh1タグが反映されない。

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

    先ほど共有したトピックの内容を引用します。

    ——-

    実際には h1 の中の画像には alt が設定されているので、h1 の中が空、というわけではないのですが、ツールによって画像を読み取る場合と読み取らない場合があるようです。

    本質的な問題はそのツールで読み取られないから、というより、HTML 的に正しいかどうか、だと思いますので、HTML の仕様、あるいは Google が推奨するドキュメントなどがあれば Snow Monkey を改修したほうが良いのかなと思いました。(軽くググった感じでは明確な記述は見つけきれませんでした)

    ちなみに、下記のコードを My Snow Monkey プラグイン、あるいは子テーマの functions.php に追加することで、フロントページでも div にすることができます。

    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/header/site-branding',
    	function( $args ) {
    		$args['vars']['_title_tag'] = 'div';
    		return $args;
    	},
    	100
    );

    —-

    これを踏まえた上で、

    SEOに詳しい方に、h1タグが表示されてないので、こちらを表示させるようにとアドバイスを受けました。

    僕は SEO には詳しくないので HTML 的に正しいかどうかで判断するようにしていますが、その方が推奨するやり方があるのであれば、まず上記のフックでデフォルトの h1div にして、その方が推奨する位置に h1 が入るようにカスタマイズされると良いのかなと思います。

    0
    いいねをした人: 居ません
    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
    いいねをした人: 居ません
    アバター画像otomeweb
    参加者
    27

    ごめんなさい 再度ひらいちゃいました
    テーマ、プラグインは最新 今までのやりとりをふまえ以下の様になってます

    やりたいこと

    ・上の一覧では新規に追加されたものが追加順に表示されたい
    現在は新着時期にpickupタグをつけて、スライダーとあわせて一覧している

    ・下の一覧ではZINEというカテゴリー(人間による加筆)があった記事だけを
    更新順(書き換えるから)表示したい
    しかしカテゴリー変更やタグの編集まで更新扱いになってしまって意図と違うリストになる

    現在下記のコードがはいってます。
    更新日、公開日がわからなくなるのでアイコンつけたいです

    改善可能でしょうか?

    /** 
     * 最新用語を更新日でソートする
     */
    
    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/common/entries/entries',
    	function( $args ) {
    		// 最近の投稿ブロックのとき
    		if ( 'snow-monkey-blocks/recent-posts' === $args['vars']['_context'] ) {
    			// 並び順を変更
    			$args['vars']['_posts_query'] = new \WP_Query(
    				array_merge(
    					$args['vars']['_posts_query']->query,
    					array(
    						'orderby' => 'modified',
    						'order'   => 'DESC'
    					)
    				)
    			);
    		}
    		return $args;
    	}
    );
    0
    いいねをした人: 居ません
    #142510

    返信が含まれるトピック: H1タグが空欄になる場合の解決方法

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

    HTML Outline という Chrome 拡張だと、h1 に画像の alt が表示されました。

    実際には h1 の中の画像には alt が設定されているので、h1 の中が空、というわけではないのですが、ツールによって画像を読み取る場合と読み取らない場合があるようです。

    本質的な問題はそのツールで読み取られないから、というより、HTML 的に正しいかどうか、だと思いますので、HTML の仕様、あるいは Google が推奨するドキュメントなどがあれば Snow Monkey を改修したほうが良いのかなと思いました。(軽くググった感じでは明確な記述は見つけきれませんでした)

    ちなみに、下記のコードを My Snow Monkey プラグイン、あるいは子テーマの functions.php に追加することで、フロントページでも div にすることができます。

    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/header/site-branding',
    	function( $args ) {
    		$args['vars']['_title_tag'] = 'div';
    		return $args;
    	},
    	100
    );
    1
    いいねをした人:
    #142151
    アバター画像キタジマ タカシ
    参加者
    2536

    もしその認識であっている場合は、My Snow Monkey プラグインか子テーマの functions.php に下記のコードを追加することでタグを表示できると思います(そのカスタム投稿タイプにタグが設定されている場合のみ)。

    add_filter(
    	'snow_monkey_get_template_part_args_templates/view/content',
    	function( $args ) {
    		// 投稿タイプが news のとき
    		if ( 'news' === $args['name'] ) {
    			// 記事下のタグ一覧の表示を有効化
    			$args['vars']['_display_tags'] = true;
    		}
    		return $args;
    	}
    );
    0
    いいねをした人: 居ません
    アバター画像キタジマ タカシ
    参加者
    2536

    調査してみたところ、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
    いいねをした人: 居ません
    アバター画像キタジマ タカシ
    参加者
    2536

    ちょっとコード自体を書き換えてみました。これに差し替えるとどうですかね?

    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/common/entries/entries',
    	function( $args ) {
    		// 最近の投稿ブロックのとき
    		if ( 'snow-monkey-blocks/recent-posts' === $args['vars']['_context'] ) {
    			// 並び順を変更
    			$args['vars']['_posts_query'] = new \WP_Query(
    				array_merge(
    					$args['vars']['_posts_query']->query,
    					array(
    						'orderby' => 'modified',
    						'order'   => 'DESC'
    					)
    				)
    			);
    		}
    		return $args;
    	}
    );
    0
    いいねをした人: 居ません
    アバター画像otomeweb
    参加者
    27

    複数サイトに実装しているので、検証がおぼつかないのですが
    プラグインを2回アップデートしたら表示される形になったように思います

    更新されてる感じなんです
    でも先頭固定よりうえ?

    人権(生まれながら持つ権利)
    身体(自分と相手を大切に)

    が先頭固定 ただし除外してる

    これおかしいのですよね「性差別」が先頭固定になるべきなので
    なにか並び順がおかしい コードはこれをつかってます

    /** 
     * 最新用語を更新日でソートする
     */
    
    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/common/entries/entries',
    	function( $args ) {
    		// 最近の投稿ブロックのとき
    		if ( 'snow-monkey-blocks/recent-posts' === $args['vars']['_context'] ) {
    				// 並び順を変更
    				$args['vars']['_posts_query']->set( 'orderby', 'modified' );
    				$args['vars']['_posts_query']->set( 'order', 'DESC' );
    				// セットしたクエリーをもとに WP_Query をリセット
    				$args['vars']['_posts_query']->query( $args['vars']['_posts_query']->query_vars );
    		}
    		return $args;
    	}
    );

    仕様として
    – 先頭固定が最初にならぶ
    – 先頭固定も更新順になる
    – その他の記事が更新順になる
    – 新規記事は公開日=更新日という扱いになる

    という仕様で意識あってますでしょうか

    0
    いいねをした人: 居ません
    アバター画像キタジマ タカシ
    参加者
    2536

    ↑のコードを応用するとどうですかね?

    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/common/entries/entries',
    	function( $args ) {
    		// 最近の投稿ブロックのとき
    		if ( 'snow-monkey-blocks/recent-posts' === $args['vars']['_context'] ) {
    				// 並び順を変更
    				$args['vars']['_posts_query']->set( 'orderby', 'modified' );
    				$args['vars']['_posts_query']->set( 'order', 'DESC' );
    				// セットしたクエリーをもとに WP_Query をリセット
    				$args['vars']['_posts_query']->query( $args['vars']['_posts_query']->query_vars );
    		}
    		return $args;
    	}
    );
    0
    いいねをした人: 居ません
15件の結果を表示中 - 1 - 15件目 (全116件中)

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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