メインコンテンツへ移動

Search results of "snow_monkey_template_part_render"

15件の結果を表示中 - 61 - 75件目 (全248件中)
  • 投稿者
    検索結果
  • アバター画像キタジマ タカシ
    参加者
    2587

    ファイルを直接変更してしまうと、やはりアップデートのたびに同じ作業をしないといけないというのがしんどいので、フックでなんとかするのが良いと思います。

    add_filter(
    	'snow_monkey_template_part_render_template-parts/content/share-buttons',
    	function( $html ) {
    		// ここで書き換えて「@yamakenkenken より」を追加する
    		return $html;
    	}
    );
    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2587

    snow_monkey_template_part_render_ フックの第2引数($name)に投稿タイプ名が入ってくるのでそれで判定するのはどうでしょうか? 設定によっては意図した投稿タイプ名が入ってこない場合もありますが、とりあえず確認してみてください。

    あと、アーカイブページでは記事タイトル名が h2 ですが、任意のタクソノミーブロックでは h3 になるので preg_replace() を使う形に書き換えるのが良いと思います。下記サンプルコードです。

    add_filter(
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary/title/title',
    	function ( $html, $name ) {
    		if ( 'news' === $name ) {
    			$html = preg_replace(
    				'|(</h[23]>)|ms',
    				'$1あいうえお',
    				$html
    			);
    		}
    		return $html;
    	},
    	10,
    	2
    );

    ②カスタム投稿のアーカイブページの横一列の表示数を3つから4つに変更したい。
    できれば任意のタクソノミー投稿の表示数も3つから4つに変更したい。

    1トピック1課題でお願いしているので、お手数おかけして申し訳ありませんが↑の課題については別にトピックを立ててください!

    0
    Who liked: No user
    memime
    閲覧者

    【お使いの Snow Monkey のバージョン】17.1.0
    【お使いの Snow Monkey Blocks のバージョン】16.0.1
    【お使いの Snow Monkey Editor のバージョン】8.0.1
    【お使いのブラウザ】firefox
    【当該サイトのURL】local

    ### 実現したいこと

    ①任意のタクソノミーで表示されているc-entry-summary__title部分にカスタムフィールドを表示させたい。

    ②カスタム投稿のアーカイブページの横一列の表示数を3つから4つに変更したい。
    できれば任意のタクソノミー投稿の表示数も3つから4つに変更したい。

    ### 発生している問題

    ①カスタム投稿のアーカイブページではカスタムフィールドの出力が行えたが、任意のタクソノミーで表示されているパネル?には同じようにカスタムフィールドを表示させることができない。

    ②どこを弄っていいかわからない。

    ### 試したこと

    /*カスタム投稿 */
    add_filter(
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary/title/title',
    	function ($html) {
    		if (get_post_type('seles_cats')) {
    			// カスタムフィールドで設定したフィールド名を代入
    			$acf_year = get_field('sex');
    			$acf_faculty = get_field('price');
    			$acf_birthday = get_field('birthday');
    
    			// テンプレートのh2タグの後に<div class='employee-info'>を追加
    			$acf_employee_info = "</h2>
    <div class='employee-info'>
    <p>" . esc_attr($acf_year) . "</p>" .
    "<p>" . esc_attr($acf_faculty) . "</p>" .
    "<p>" . esc_attr($acf_birthday) . "</p>" .
    "</div>";
    
    			// テンプレートパーツのh2タグの後ろにdivタグを追加する
    			$html = str_replace(
    				'</h2>',
    				$acf_employee_info,
    				$html
    			);
    		}
    		return $html;
    	}
    );

    アーカイブの時はis_post_type_archiveを指定することで表示できたので、ここをget_post_typeに変更したが表示されなかった。

    こちらも参考にしましたが、表示ができませんでした。

    ↓アーカイブページ

    アーカイブページ

    ↓任意のタクソノミー表示

    よろしくお願いします。

    #106093
    shinko
    参加者
    36

    ありがとうございます。

    以下のように記述してみました。

    add_filter(
    	'snow_monkey_template_part_render_template-parts/common/page-header',
    	function( $html ) {
    		// 固定ページのとき
    		if ( is_category() ) {
    			// ページヘッダータイトルの下に <div>抜粋</div> を追加
    			$html = preg_replace(
    				'|(<h1 class="c-page-header__title">.*?</h1>)|ms',
    				'$1' . '<div>' . category_description() . '</div>',
    				$html
    			);
    		}
    		return $html;
    	}
    );

    私の説明不足だったのですが、以下のようなカテゴリーになっており、

    親カテゴリー
      子カテゴリーA
      子カテゴリーB
      子カテゴリーC

    子カテゴリーに説明文を入力しても親カテゴリーの説明文が表示されてしまいます。

    何度もお手数おかけして申し訳ありませんが、よろしくお願いします。

    0
    Who liked: No user
    #105316
    SNM-FUN
    閲覧者
    20

    まーちゅう様

    上記コードで無事実装することができました。

    この度は、ご教示いただき誠にありがとうございました。

    それではトピック閉じさせていただきます。

     

    P.S.

    ご教示いただいた内容を参考に、.c-entry__metaを、以下.c-entry__header__header内に含有させる場合、以下のように実装できましたので念の為共有いたします。

     

    /**
     * シングルページのページヘッダーにアイキャッチを追加
     *
     * @param $html テンプレートパーツの出力HTML
     * @param $name テンプレートパーツの名前
     */
    // use Framework\Helper;
    add_filter(
    	'snow_monkey_template_part_render_template-parts/content/entry/header/header',
    	function( $html, $name ) {
    		if ( "post" === $name ) {
    
    			ob_start(); // アイキャッチ画像のHTMLを記録開始
    			if ( has_post_thumbnail() ) {
    				?>
    				<div class="c-entry__thumbnail">
    					<?php the_post_thumbnail("large"); ?>
    				</div>
    				<?php
    			}
    			$thumbnail_html = ob_get_contents(); // 記録結果を変数に代入
    			ob_end_clean(); //記録終了
    
    			$search_1  = '<h1 class="c-entry__title"';
    			$replace_1 = '<div class="c-entry__header__header"><h1 class="c-entry__title"' ;
    			$search_2  = '</header>' ;
    			$replace_2 = '</div>'.$thumbnail_html.'</header>';
    			$html = str_replace(
    				[
    					$search_1,
    					$search_2
    				],
    				[
    					$replace_1,
    					$replace_2
    				],
    				$html
    			);
    		}
    		return $html;
    	},
    	10,
    	2
    );
    2
    Who liked:
    #105303
    まーちゅう
    参加者
    388

    こんにちは。
    カスタマイザーの設定でアイキャッチ無しにしたうえで、My Snow Monkey に以下のコードを追加してみてください。

    /**
     * シングルページのページヘッダーにアイキャッチを追加
     * 
     * @param $html テンプレートパーツの出力HTML
     * @param $name テンプレートパーツの名前
     */
    // use Framework\Helper;
    add_filter(
    	'snow_monkey_template_part_render_template-parts/content/entry/header/header',
    	function( $html, $name ) {
    		if ( 'post' === $name ) {
    			// アイキャッチ画像
    			ob_start();
    			if ( has_post_thumbnail() ) {
    				?>
    <div class="entry-thumbnail">
    	<?php the_post_thumbnail( 'medium' ); ?>
    </div>
    				<?php
    			}
    			$thumbnail = ob_get_contents();
    			ob_end_clean();
    			$search_1  = '<h1';
    			$replace_1 = '<div class="entry-header"><h1' ;
    			$search_2  = '</h1>' ;
    			$replace_2 = '</h1>'.$thumbnail.'</div>';
    			$html = str_replace(
    				[
    					$search_1,
    					$search_2
    				],
    				[
    					$replace_1,
    					$replace_2
    				],
    				$html
    			);
    		}
    		return $html;
    	},
    	10,
    	2
    );

    CSSでの調整が必要になるので以下のような感じでレイアウト調整してみてください。

    .entry-header {
    	display: flex;
    	justify-content: space-between;
    }
    
    .entry-thumbnail {
    	width: 20%;
    }
    3
    Who liked:
    #104986
    アバター画像キタジマ タカシ
    参加者
    2587

    ちょっときれいなやり方ではないかもですが、下記のコードでとりあえず実現はできると思います。My Snow Monkey に貼り付けて調整してみてください。

    add_filter(
    	'snow_monkey_template_part_render_template-parts/common/page-header',
    	function( $html ) {
    		// img タグを picture + source + img に置換
    		// 639px以下のときは source で指定した画像を表示する
    		return preg_replace(
    			'|(<img [^>]+>)|ms',
    			'<picture>
    				<source srcset="https://placehold.jp/100x100.jpg" media="(max-width: 639px)">
    				$1
    			</picture>',
    			$html
    		);
    	}
    );
    1
    Who liked:
    まーちゅう
    参加者
    388

    すみません。こちら、返事が遅くなてしまいました。
    キタジマさんにご提示いただいたコードを参考に、以下のように対応しようと思います。

    add_filter(
    	'snow_monkey_template_part_render_template-parts/header/hamburger-btn',
    	function( $html ) {
    		ob_start();
    		?>
    		<span class="c-hamburger-btn__close-label">とじる</span>
    		<?php
    		$close_label = ob_get_contents();
    		ob_end_clean();
    		$html = str_replace(
    			'</button>',
    			$close_label.'</button>',
    			$html
    		);
    		return $html;
    	},
    	10
    );
    .c-hamburger-btn__close-label {
     display: block;
    }
    .c-hamburger-btn[aria-expanded="true"] .c-hamburger-btn__label {
      display: none;
    }
    .c-hamburger-btn[aria-expanded="false"] .c-hamburger-btn__close-label {
      display: none;
    }
    2
    Who liked:
    #102796

    返信が含まれるトピック: タブレット時のメニュー表示について

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

    下記のコードを My Snow Monkey か子テーマの functions.php に追加してみてください。

    add_filter(
    	'snow_monkey_template_part_render_template-parts/header/1row',
    	function( $html ) {
    		$html = str_replace( 'u-invisible-md-down', 'u-invisible-sm', $html ); // タブレット以下で非表示 を スマホサイズでのみ非表示に変更
    		$html = str_replace( 'u-invisible-lg-up', 'u-invisible-md-up', $html ); // PC サイズ以上で非表示 を タブレットサイズ以上で非表示に変更
    		return $html;
    	}
    );
    0
    Who liked: No user
    #102602
    まーちゅう
    参加者
    388
    add_filter(
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary/title/title',
    	function( $html ) {
    		if ( in_category( array('meat','sweets','other','bread','drink') ) ):
    		ob_start();
    		$title = get_the_title();
    		if ( ! $title ) {
    			return;
    		}
    		?>
    		<h2 class="c-entry-summary__title">
    			<?php
    			echo wp_kses_post( $title );
    			?>
    		</h2>
    		<?php
    		$html = ob_get_clean();
    		endif;
    		return $html;
    	}
    );

    を追加してみてください。

    2
    Who liked:
    #100515
    m.yosh
    参加者
    19

    ありがとうございます!

    なぜ最近の投稿ブロックの画像が最初に実行されるのかモヤモヤが残りますが…
    下記のように書いて1枚目画像のloading=lazyを消すことはできました。

    add_filter(
    	// テンプレートパーツ が template-parts/content/entry/content/content.php のときに実行
    	'snow_monkey_template_part_render_template-parts/content/entry/content/content',
    	function( $html, $name ) {
    		if ( 'page' === $name || 'front-page' === $name || 'post' === $name  ) { // 固定ページ、フロントページ、投稿 のとき
    			$html = preg_replace( '|loading="lazy"|', '', $html, 1 ); // 1個目の loading="lazy" を強制的に消す
    			return $html;
    		}
    	},
    	10,
    	2
    );

    ところで最初のところで themes/snow-monkey/template-parts/content/entry/front-page.php を書き換えたことによる影響はどのようなことが考えられるのでしょうか?

    0
    Who liked: No user
    #100357
    アバター画像キタジマ タカシ
    参加者
    2587

    あーなるほどです。そうですね、なるべく共通のテンプレートパーツを使いたくて、レイアウトによっては画像を CSS で消しているだけのものがあります。が、なぜ最近の投稿ブロックの画像が最初に実行されているのかはわかりません…。

    無理やりな方法ですが、Snow Monkey のフックで強制的に1つ目の loading="lazy" を消すのが簡単かもしれません。

    add_filter(
    	// テンプレートパーツ が template-parts/content/entry/content/content.php のときに実行
    	'snow_monkey_template_part_render_template-parts/content/entry/content/content',
    	function( $html, $name ) {
    		if ( 'page' === $name ) { // 固定ページのとき
    			$html = preg_replace( '|loading="lazy"|', '', $html, 1 ); // 1個目の loading="lazy" を強制的に消す
    			return $html;
    		}
    	},
    	10,
    	2
    );

    実行条件は get_the_ID()is_page() 等で状況に合わせて変更してください。

    0
    Who liked: No user
    arata
    参加者
    5

    Olein_jp様

    ご丁寧な解説ありがとうどざいます。非常に分かりやすく勉強になりました。

    ・変更したい場所を定義ているファイル、コードを探す

    ・それを変更できるフックを知る

    これができる様にWordPressやsnow moneky をもっと触っていこうと思います。

    下記のOlein_jp様のサイトや公式のhooks一覧には載っていない、フックも存在するのですね。理解できる様に励みます。

    1
    Who liked:
    アバター画像yuu
    閲覧者
    28

    オレインさんの記事を読みながら色々とやってみたらできそうです。
    確認していただけますか?

    ただ、抜粋の長さに関わらずリンクボタンを右寄せにしたいのですが、イマイチできません。
    そこだけお聞きしてもいいでしょうか?

    my-snow-monkey.php

    add_filter(
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary/content/content',
    	function ( $html ) {
    		$acf_link = get_field( 'link' );
    
    		$acf_reserve_link = "<div class="c-entry-summary__content">
    <div class="reserve-link"><a class="reserve-btn" href="$acf_link" target="_blank" rel="noopener">チケット予約</a>";
    
    		$html = str_replace(
    			'<div class="c-entry-summary__content">',
    			$acf_reserve_link,
    			$html
    		);
    		return $html;
    	}
    );

    css

    .reserve-link {
      display:flex;
      flex-direction:row-reverse;
      justify-content:space-between;
    }
    .reserve-btn {
      border: 1px solid #000;
      padding:10px 50px;
      border-radius: 10px;
    }
    .reserve-link a {
      text-decoration:none;
      color: #000;
    }
    0
    Who liked: No user
    Olein_jp
    参加者
    574

    方法としては以下のような流れで実現は可能かと思います。

    • カスタム投稿タイプに紐付いているカスタムタクソノミー(ライブ情報)を選択した際にリンク先URLを設定できるカスタムフィールドを用意する
    • template-parts/loop/entry-summary/content/content or template-parts/loop/entry-summary/meta/meta 辺りにフックでカスタムフィールドを出力させる

    ただし、こちらを実現するために必要な知識としては、

    • カスタムフィールドを設定・設置
    • PHPにてフックの処理を

    となります。ただ、

    カスタムフィールドを自分で実装したことがないので、まだよくわからず…

    と書かれている状態を推測すると、難易度はかなり高めと考えていただいた方が良いかもしれません。

    挑戦される場合には、以下のリソースでいけると思います。

    3
    Who liked:
15件の結果を表示中 - 61 - 75件目 (全248件中)

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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