「snow_monkey_template_part_render」の検索結果

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

    はい、そういうことになります。最終的には下記の 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
    参加者
    846

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

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

    カスタム投稿タイプ名は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
    アバター画像キタジマ タカシ
    参加者
    2537

    でもこれは非推奨なのですよね。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
    まーちゅう
    参加者
    373

    こんにちは。
    テンプレートの内容を書き換える場合は、フィルターフックの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
    いいねをした人:
    #84699
    アバター画像キタジマ タカシ
    参加者
    2537

    ラベル部分 esc_html() して出力されるので HTML タグ使えないのですよね…>< snow_monkey_template_part_render_footer-cta/primary-btn フックを使って、文字列を書き換えするのが簡単かもです。

    管理画面でプライマリーボタンのラベルに「無料相談のご予約のお電話はこちら」と入れておいて、

    add_filter(
    	'snow_monkey_template_part_render_footer-cta/primary-btn',
    	function( $html ) {
    		return str_replace( '無料相談のご予約のお電話はこちら', '無料相談のご予約の<br>お電話はこちら', $html );
    	}
    );

    というコードでラベルを書き換えて <br> を入れると。こんな感じでどうですかねー。

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

    なるほどです。team-ateam-b はそれぞれ固定ページということですね。例えばロゴについては snow_monkey_template_part_render_template-parts/site-branding というフックで書き換えが可能です。

    add_action(
    	'snow_monkey_template_part_render_template-parts/site-branding',
    	function( $html ) {
    		// 固定ページじゃないときは書き換えない
    		if ( ! is_page() ) {
    			return $html;
    		}
    
    		// 一番先祖の固定ページの ID を取得
    		$founder_id = get_the_ID();
    		$ancestors = get_post_ancestors( get_the_ID() );
    		if ( $ancestors ) {
    			$founder_id = end( $ancestors );
    		}
    
    		// 先祖の ID が 100 か 101 なら(ここで team-a か team-b か判定)
    		if ( 100 === $founder_id || 101 === $founder_id ) {
    			// ロゴ部分を書き換える
    			return preg_replace( ... );
    		}
    
    		return $html;
    	}
    );

    が、グローバルナビゲーションやドロワーナビゲーションについてはちょっと簡単にはいかなさそうですね…。WordPress のメニュー機能を使っていて、それが登録されているかどうかを判断してナビゲーションを出力するわけですが、2種類のナビゲーションを登録する想定ではつくられていないので、単純にナビゲーションを出力する部分だけではなくて関連する部分すべてを書き換えたり調整したりする必要がでてきます。ナビゲーションをハードコーディングする形にするのが簡単かもですが、いろいろ不都合も多そうなので、僕ならマルチサイトにするかなぁと思いました(もちろん人によって考えは違うと思います)。

    0
    いいねをした人: 居ません
    #84282
    rumix63
    参加者
    8

    @Olein_jpさま

    ご報告が遅くなり大変失礼をいたしました。
    教えていただいたコードでh1タイトルを含むheader要素を投稿ページ(is_single)に出力させないようにしました。

    `add_filter(
    ‘snow_monkey_template_part_render_template-parts/content/entry/header/header’,
    function ( $html ) {
    if ( is_single() ) {
    return;
    }
    return $html;
    }
    );

    その後、h1タイトルを出力させたい任意の場所にはブロックの>カスタムHTMLにて表示させました。
    この度は貴重なお時間を割いて検証までして頂きありがとうございます!

    いつもこのフォーラムやoleinさんのHSMとキタジマさんとのYoutubeも拝聴させていただいて本当に勉強になっていますし、トークも楽しませてもらっています!ありがとうございます。

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

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

    *****
    [ プライベートトピックのため非表示 ]
    1
    いいねをした人:
    #82983
    Olein_jp
    参加者
    573

    HTML構造のどの部分にどう入れたいのかがわからないので、これが正しいのか判断できませんが、ページヘッダー部分(ページタイトルなどを出力している部分)をDOM構造ごと非表示にするには、このようなコードで実現できると思います。条件分岐は必要に応じて書き換えてください。

    add_filter(
    	'snow_monkey_template_part_render_template-parts/content/entry/header/header',
    	function ( $html ) {
    		if ( is_page() ) {
    			return;
    		}
    		return $html;
    	}
    );

    単純に固定ページで出力させていないだけです。

    そして、任意の場所に独自のタイトルを出力する場合ですが、例えば the_content の最上位に挿入したい場合(これだと上記を消す意味がないのであれですが)、

    add_filter(
    	'the_content',
    	function ( $content ) {
    		if ( is_page() ) {
    			$page_title = '<h1 class="original-page-title">' . get_the_title() . '</h1>';
    			$content = $page_title . $content;
    			return $content;
    		}
    		return $content;
    	}
    );

    こんな感じでできると思います。一応動作は検証してあります。

    デザインの都合上、ページタイトル部分の出力位置を変えたいということだと思うのですが、DOM構造的にどの部分を削除して、どのようなDOMを具体的に入れたいのかを明確に書かれた方がストレートな返答をしやすいので、問題解決には近道になると思います。

    あと、開発段階とは言え現状が見られる共有URLを用意されると、よりスピーディーかと思います。

    ご確認ください。

    0
    いいねをした人: 居ません
    #82871
    Olein_jp
    参加者
    573

    もっとスマートな方法があるかもしれませんが、最終的にどんなDOM構造にされたいのかなど詳細はわかりかねるので、以下の流れで実現できそうだなと感じます。(未検証)

    1. snow_monkey_template_part_render_template-parts/content/entry/header/header へのフィルターフックで <header class="c-entry__header">〜</header> を出力させないようにする
    2. (構造がわからないので的確かどうかわかりませんが) the_contentの冒頭にタイトルを出力させるようフックで処理

    これで、

    ページトップのh1タイトルをなくして(cssにて非表示ですとh1が2箇所になったままになるので)
    ブロックでデザインしている箇所にh1タイトルを表示させたい

    という要件はクリアできそうな気がします。ご確認ください。

    1
    いいねをした人:
    まーちゅう
    参加者
    373

    名前と得意分野で、それぞれコードを分けて以下のような感じでどうでしょうか?

    
    /**
     * カスタム投稿タイプのアーカイブページにて、投稿一覧(リッチメディア型)のタイトルの前に、'名前:'を表示
     *
     * @param string $html はコンテンツの中身.
     */
    add_filter(
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary/title/title',
    	function ( $html ) {
    		if ( 'banso-mate' !== get_post_type() ) {
    			return $html;
    		}
    		$html = str_replace( '<h3>', '<h3>名前:', $html );
    		return $html;
    	}
    );
    
    /**
     * カスタム投稿タイプのアーカイブページにて、投稿一覧(リッチメディア型)に、タグ・ディスクリプションを表示
     *
     * @param string $html はコンテンツの中身.
     */
    add_filter(
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary/content/content',
    	function ( $html ) {
    		if ( 'banso-mate' !== get_post_type() ) {
    			return $html;
    		}
    		$postid     = get_the_ID();
    		$taxonomy   = 'banso_tags';
    		$post_terms = get_the_terms( $postid, $taxonomy );
    		if ( ! empty( $post_terms ) ) {
    			$tags = '<div>';
    			$tags .= '<h3>得意分野:</h3>';
    			$tags .= '<div>';
    			$tags .= '<ul class="smb-taxonomy-terms__list">';
    			foreach ( $post_terms as $post_term ) {
    				$term_name = $post_term->name;
    				$tags .= '<li class="smb-taxonomy-terms__item">' . $term_name . '</li>';
    			}
    			$tags .= '</div>';
    			$tags .= '</div>';
    		}
    
    		$meta_description = get_post_meta( get_the_ID(), 'wp-seo-meta-description', true );
    		$html = $tags . '<div class="c-entry-summary__content">' .$meta_description. '</div>';
    		return $html;
    	}
    );
    4
    いいねをした人:
    #80090
    まーちゅう
    参加者
    373

    ありがとうございます。
    get_post_type() に変更で、うまくいきました。

    /**
     * 各投稿一覧で taxonomy のラベルをタイトルの上に表示
     *
     * @param string $html はコンテンツの中身.
     */
    add_filter(
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary/title/title',
    	function ( $html ) {
    		$taxonomy  = 'category';
    		$post_type = get_post_type();
    		switch ( $post_type ) {
    			case 'post':
    				$taxonomy = 'category';
    				break;
    			case 'news':
    				$taxonomy = 'news_category';
    				break;
    			case 'shop-info':
    				$taxonomy = 'shop_genre';
    				break;
    			case 'interview':
    				$taxonomy = '';
    				break;
    		}
    		$tags       = '';
    		$postid     = get_the_ID();
    		$post_terms = get_the_terms( $postid, $taxonomy );
    		if ( ! empty( $post_terms ) ) {
    			$tags = '<ul class="' .$taxonomy. '-tags taxonomy-tags">';
    			foreach ( $post_terms as $post_term ) {
    				$term_name = $post_term->name;
    				$slug      = $post_term->slug;
    				$term_id   = $post_term->term_id;
    				$tags .= '<li class="' .$taxonomy. '-' .$term_id.' ' .$slug.'">' . $term_name . '</li>';
    			}
    			$tags .= '</ul>';
    		}
    		$html       = str_replace( '<h3', $tags . '<h3', $html );
    		return $html;
    	}
    );
    4
    いいねをした人:
    アバター画像キタジマ タカシ
    参加者
    2537

    ちょっと調整は必要かもしれませんが、こんな感じでどうでしょうか?

    add_filter(
    	'snow_monkey_template_part_render_template-parts/common/page-header',
    	function( $html ) {
    		$meta_description = get_post_meta( get_the_ID(), 'wp-seo-meta-description', true );
    		return str_replace(
    			'</h1>',
    			'</h1><div>' . $meta_description . '</div>',
    			$html
    		);
    	}
    );
    1
    いいねをした人:
    Olein_jp
    参加者
    573

    お知らせバーの <a> タグのclass名に .u-smooth-scroll を付けるにはフィルターフックで置換する方法が良いかなと思います。

    スクロールのテストはしていませんが、クラスを追加するだけであれば、これでできると思います。

    >add_action(
    	'snow_monkey_template_part_render_template-parts/common/infobar',
    	function( $html ) {
    		$html = str_replace(
    			'p-infobar__inner',
    			'p-infobar__inner u-smooth-scroll',
    			$html
    		);
    		return $html;
    	},
    	10,
    	3
    );

    お試しください。

    3
    いいねをした人:
15件の結果を表示中 - 91 - 105件目 (全245件中)

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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