「snow_monkey_template_part_render」の検索結果

15件の結果を表示中 - 76 - 90件目 (全240件中)
  • 投稿者
    検索結果
  • #93785
    まーちゅう
    参加者
    368

    条件分岐の書き方を変えるだけです。
    特定のページ以外での場合は is_page()! is_page() に変えます。

    /**
     * 特定のページ以外で追尾サイドバーを非表示にする
     *
     * @param string $html はコンテンツの中身.
     */
    add_filter(
    	'snow_monkey_template_part_render_template-parts/widget-area/sidebar-sticky',
    	function ( $html ) {
    		if ( ! is_page( 11 ) ) {
    			return;
    		}
    		return $html;
    	}
    );
    2
    いいねをした人:
    #93755
    まーちゅう
    参加者
    368

    こんにちは。
    フックを使用する場合は、こんな感じです。

    /**
     * 特定のページのみ追尾サイドバーを非表示にする
     *
     * @param string $html はコンテンツの中身.
     */
    add_filter(
    	'snow_monkey_template_part_render_template-parts/widget-area/sidebar-sticky',
    	function ( $html ) {
    		if ( is_page( 11 ) ) {
    			return;
    		}
    		return $html;
    	}
    );
    2
    いいねをした人:
    GONSY
    参加者
    844

    こんにちは。

    has_excerpt()で実現可能かと思います。

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

    @キタジマさん
    不備があったら補足をお願いします🙇‍

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

    こんな感じでどうでしょう? My Snow Monkey か子テーマの functions.php に追加してみてください。

    add_filter(
    	'snow_monkey_template_part_render_template-parts/common/page-header',
    	function( $html ) {
    		// 固定ページのとき
    		if ( is_page() ) {
    			// ページヘッダータイトルの下に <div>抜粋</div> を追加
    			$html = preg_replace(
    				'|(<h1 class="c-page-header__title">.*?</h1>)|ms',
    				'$1' . '<div>' . get_the_excerpt() . '</div>',
    				$html
    			);
    		}
    		return $html;
    	}
    );
    0
    いいねをした人: 居ません
    #92319
    アバター画像キタジマ タカシ
    参加者
    2457

    \Framework\Helper::get_template_part( 'template-parts/header/site-branding' ); だとデフォルトのロゴが呼び出されるので、ここを独自にコーディングしちゃっうのが一番簡単ではないですかね?

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug ) {
    		if ( 'template-parts/nav/drop' === $slug ) {
    			ob_start();
    			?>
    			<div class="my-drop-nav-logo">
    				<img src="..." alt="..." />
    			</div>
    			<?php
    			$site_branding = ob_get_clean();
    			$search = '|(<li class="menu-item)|m';
    			$replace = sprintf( '<li class="c-navbar__item">%1$s</li>', $site_branding );
    			return preg_replace( $search, $replace . '$1', $html, 1 );
    		}
    		return $html;
    	},
    	10,
    	2
    );

    のようにして、.my-drop-nav-logo にスタイルをあてて調整するという感じで。

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

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

    add_filter(
    	'snow_monkey_template_part_render_template-parts/nav/drawer', // template-parts/nav/drawer を書き換える
    	function( $html ) {
    		return str_replace(
    			'class="c-drawer ', // これを
    			'class="c-drawer c-drawer--inverse ', // こうする(.c-drawer--inverse が右からでるようにするクラス)
    			$html
    		);
    	}
    );

    これで右からはでるようになるのですが、ハンバーガーボタンにドロワーが重なってしまうので、一般の方はどうやって閉じるのかな?と混乱してしまう可能性はあると思います。中にハンバーガーボタンを追加できれば良いですが、ちょっと構造的にそれがやりにくいので、あまりおすすめはできません…。今後のアップデートで(コードを書く形にはなると思いますが)出る方向と、ハンバーガーボタンの有無をやりやすくしたいなと思います。

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

    返信が含まれるトピック: *****

    *****
    [ プライベートトピックのため非表示 ]
    1
    いいねをした人:
    #87197
    アバター画像キタジマ タカシ
    参加者
    2457

    また、ここは

    add_action( 'snow_monkey_entry_meta_items', 'snow_monkey_entry_meta_items_modified', 20 );
    

    というコードで日付を表示する処理を追加しているので、snow_monkey_template_part_render フィルターフックでの書き換えが難しいのであれば

    remove_action( 'snow_monkey_entry_meta_items', 'snow_monkey_entry_meta_items_modified', 20 );
    

    でデフォルトの日付表示処理を外して、改めてオリジナルの日付表示処理を追加するほうがわかりやすいかもしれませんね。

    —-

    追記:すみません、↑は誤りです。↑は詳細ページのメタ情報をについてでした。今回は一覧部分の日付なので違いますね。

    一覧部分の日付(というかメタ情報)は、template-parts/loop/entry-summary/meta/meta.php というファイルで表示されています。この部分は子テーマに template-parts/loop/entry-summary/meta/meta-{投稿タイプ名}.php というファイルがあるとそれが優先されて使われるようになっているので、子テーマにそのファイルをつくって独自に日付の表示処理を書いてしまったほうがわかりやすいかもしれませんね。

    1
    いいねをした人:
    #87131
    林淳一
    参加者
    21

    以下を参考にしました。

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug ) {
    		if ( 'template-parts/loop/entry-summary/meta/meta' === $slug ) {
    			return preg_replace(
    '|
    <ul>
     	<li class="c-meta__item c-meta__item--published">.*?</li>
    </ul>
    |ms',
    '
    <ul>
     	<li class="c-meta__item c-meta__item--modified">' . get_the_modified_time( get_option( 'date_format' ) ) . '</li>
    </ul>
    ',
    				$html
    			);
    		}
    		return $html;
    	},
    	10,
    	2
    );
    0
    いいねをした人: 居ません
    GONSY
    参加者
    844

    shiさん

    くわしくありがとうございます。
    概ね以下のコードをmy-snow-monkey.phpに追加していただければ、ご希望の表示はできると思います。(もっと良いコードの書き方はあると思いますので参考までに(^^;)

    使用しているget_field()の部分は、設定しているフィールド名に変更してください。
    また不要なものは消してください。

    add_filter(
    'snow_monkey_template_part_render_template-parts/loop/entry-summary',
    	function( $html ) {
    	if ( 'event' === get_post_type() ):
    	ob_start();
    	?>
    	<?php
    
    		// カスタムフィールド:開催日 → event_day
    		// ACF デイトピッカー(返り値:Ymd)
    		$eDate =  get_post_meta( get_the_ID(), 'event_day', true );
    		$date = date_create( $eDate );
    
    		// 曜日用
    		$week = array("日", "月", "火", "水", "木", "金", "土");
    
    		// 開催日の表示は 「月.日」に変更
    		$eventDay = date_format($date,'n.j');
    
    		$today = wp_date('Ymd');
    
    		// カスタムフィールド:開始時刻 → event_starttime
    		// ACF Time Picker(返り値:G:i)
    		$startTime = get_field( 'event_starttime' );
    
    		// カスタムフィールド:開始時刻 → event_endtime
    		// ACF Time Picker(返り値:G:i)
    		$endTime = get_field( 'event_endtime' );
    
    		// 開催日以降の判定
    		// 開催日よりも今日の日付が大きい場合
    		$preriod = strtotime($eDate) < strtotime($today);
    
    		// カスタムフィールド:概要欄 → event_txt
    		// ACF テキストエリア(改行:なにもしない)
    		$eventSummary = get_field( 'event_txt' )
    	?>
    
    	<div class="event_day_post">
    		<p class="event_date"><?php echo esc_attr( $eventDay) ; ?><span class="week"><?php echo esc_attr( $week[(int)date_format($date,'w')] ) ?></span></p>
    		<p class="event_time"><?php echo esc_attr( $startTime ) ; ?> - <?php echo esc_attr( $endTime ) ; ?></p>
    	</div>
    
    	<div class="event_txt">
    		<p><?php echo nl2br( esc_attr( $eventSummary ) ); ?></p>
    	</div>
    
    	<?php if( $preriod ): ?> // 開催日以降の条件分岐
    		<div class="event_finish">終了しました</div>
    	<?php else: ?>
    		<div class="event_open">これから開催です</div>
    	<?php endif; ?>
    
    	<?php
    	$event = ob_get_clean();
    	
    	return str_replace(
    	'</header>',
    	'</header>'.$event , // 投稿タイトルの下に追加
    	
    	$html
    	);
    	endif;
    	return $html;
    	}
    );

    結果 ↓

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

    はい、そういうことになります。最終的には下記の HTML にならないとダメなわけですよね。

    <a onclick="ChannelIO('showMessenger')">...</a>
    

    現状は下記のようになっています。

    <a onclick="ChannelIO('showMessenger')" href="onclick="ChannelIO('showMessenger')"">...</a>
    

    この href="..." は前述したようにリンク先の URL を記述するものなので、現状の HTML の場合は https://onclick="ChannelIO('showMessenger')" という「URL」に移動する、ということになります。そのような URL は存在しないので 404 になります。

    なのでリンク先には # と入力してリンクによるページ遷移をしなくするか、フックで href ごと消してしまうかのどちらかの対応が必要になるかなと思います。注意点として、リンク URL 未入力だとお知らせバー自体表示されなくなってしまうので、フックで href を消す場合でも何らかの入力が必要です。

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $_html, $_slug ) {
    		if ( 'template-parts/common/infobar' === $_slug ) {
    			// onClick を追加
    			$_html = str_replace(
    				'<a class="p-infobar__inner"',
    				'<a class="p-infobar__inner" onclick="ChannelIO(\'showMessenger\')"',
    				$_html
    			);
    
    			// href を削除(リンク URL に入力している内容によってはちゃんと消えないかも)
    			$_html = preg_replace(
    				'|href=".+"|',
    				'',
    				$_html
    			);
    
    		}
    		return $_html;
    	},
    	10,
    	2
    );
    0
    いいねをした人: 居ません
    #85240
    GONSY
    参加者
    844

    市岡歩夢さん、こんにちは。

    ほかにも方法はあるかと思いますが、こちらでご希望のことができると思います。

    カスタム投稿タイプ名はmember
    Advanced Custom Fieldsのカスタムフィールド(設定)は

    • カスタムフィールド名:spec
    • フィールドタイプ:テキストエリア
    • 改行:なにもしない

    投稿画面でのカスタムフィールドの入力は

    選手経歴______________
    出身地_________________
    ポジション___________
    一言____________

    と、改行しています。
    これらを前提として、my-snow-monkey.phpに以下を追記

    /**
     * 【最近の投稿】(シンプル)投稿タイプ「メンバー」のみカスタムフィールド"spec"を表示
     */
    add_filter(
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary/content/content',
    	function ( $html ) {
    		if ( 'post' == $post_type ) {
    			return $html;
    		}
    		
    		if ( 'member' == get_post_type() ) {
    			return sprintf(
    				'<div class="c-entry-summary__content">%1$s</div>',
    				nl2br( esc_html( get_field( 'spec' ) ) )
    			);
    		}
    		return $html;
    	},
    	10,
    	4
    );
    
    /**
     * CPT"member"のシングルページにカスタムフィールド"spec"を表示
     */
    add_action(
    	'snow_monkey_prepend_entry_content',
    	function() {
    		if ( is_single() && 'member' === get_post_type() ) {
    		?>
    			<div class="member_spec">
    				<p><?php echo nl2br( esc_html( get_field( 'spec' ) ) ); ?></p>
    			</div>
    		<?php
    		}
    	}
    );

    これでどうでしょうか?
    お試しください。

    5
    いいねをした人:

    【お使いの Snow Monkey のバージョン】バージョン: 15.3.5
    【お使いの Snow Monkey Blocks のバージョン】12.1.0
    【お使いの Snow Monkey Editor のバージョン】6.0.0
    【お使いのブラウザ】Chrome
    【当該サイトのURL】 ローカル

    以下の記事を参考にし、一覧ページにカスタムフィールドを反映させる設定を進めております。

    記事内のコードにて、投稿文(c-entry-summary__content)を単一のカスタムフィールドで置き換えることはできましたが、
    この投稿文を複数のカスタムフィールドで置き換える方法はありますでしょうか。
    以上、ご教示のほど宜しくお願い致します。

    add_filter(
    ‘snow_monkey_template_part_render’,
    function( $html, $slug, $name, $vars ) {
    if ( ‘投稿タイプ名’ !== get_post_type() ) {
    return $html;
    }

    if ( ‘template-parts/loop/entry-summary/content/content’ === $slug ) {
    return sprintf(
    ‘<div class=”c-entry-summary__content”>%1$s</div>’,
    esc_html( get_post_meta( get_the_ID(), ‘カスタムフィールド名A’, true ) )
    );
    }

    return $html;
    },
    10,
    4

    #85012
    アバター画像キタジマ タカシ
    参加者
    2457

    でもこれは非推奨なのですよね。My Snow Monkeyでのフックが推奨なのですよね

    非推奨というのは、Snow Monkey テーマが子テーマに向いていないというわけではなくて、僕が WordPress の子テーマというものを積極的には使わないほうが良いと思っているということです。

    むしろ Snow Monkey は子テーマを使いやすいように工夫している(テンプレートを小分けにしたり、デバッグコメントとしてテンプレートの情報を出力するようにしたり)ので、フックでのカスタマイズが苦手な方は子テーマを使うのもありだと思います(個人的には、コードによるカスタマイズが難しいという方は無理にカスタマイズせずに使うほうが安全だとは思いますが)。

    まえ、My Snow Monkey内のコードで数行のHTMLを見ましたが、フックかけた場所をごそっとHTMLに入れ替えることも
    可能なのですよね

    まーちゅうさんが書かれていた snow_monkey_template_part_render_{slug} とか、snow_monkey_get_template_part_{slug} でできます。

    0
    いいねをした人: 居ません
    #84927
    まーちゅう
    参加者
    368

    こんにちは。
    テンプレートの内容を書き換える場合は、フィルターフックのsnow_monkey_template_part_render_{slug}を使用します。
    テンプレートの内容を書き換える

    ローカル環境等でデバッグモードをtrueにしておくと、ソース上にどのテンプレートを使用しているのかが表示されます。

    ・この記事を書いた人
    ・関連記事
    を単純に消すだけなら、以下のコードを My Snow Monkey に追加すればOKです。

    add_filter(
    	'snow_monkey_template_part_render_template-parts/common/profile-box',
    	function ( $html ) {
    		$post_type = get_post_type(); 
    		if ( 'special' == $post_type ) {
    			return;
    		}
    		return $html;
    	}
    );
    
    add_filter(
    	'snow_monkey_template_part_render_template-parts/content/related-posts',
    	function ( $html ) {
    		$post_type = get_post_type(); 
    		if ( 'special' == $post_type ) {
    			return;
    		}
    		return $html;
    	}
    );
    1
    いいねをした人:
15件の結果を表示中 - 76 - 90件目 (全240件中)

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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