「snow_monkey_template_part_render」の検索結果

15件の結果を表示中 - 211 - 225件目 (全239件中)
  • 投稿者
    検索結果
  • #28438

    返信が含まれるトピック: 目次のデザイン(数字)を変更したい

    Takeru
    閲覧者
    0

    以下、ご確認お願いします!

    <?php
    /**
     * Plugin name: My Snow Monkey
     * Description: このプラグインに、あなたの Snow Monkey 用カスタマイズコードを書いてください。
     * Version: 0.1.1
     *
     * @package my-snow-monkey
     * @author inc2734
     * @license GPL-2.0+
     */
    
    /**
     * Snow Monkey 以外のテーマを利用している場合は有効化してもカスタマイズが反映されないようにする
     */
    $theme = wp_get_theme( get_template() );
    if ( 'snow-monkey' !== $theme->template && 'snow-monkey/resources' !== $theme->template ) {
    	return;
    }
    
    // サイドバーのウィジェットの見出しを h2 から h4 に変更する
    add_filter(
    	'dynamic_sidebar_params',
    	function( $params ) {
    		if ( preg_match( '|sidebar|', $params[0]['id'] ) ) {
    			$params[0]['before_title'] = str_replace( '<h2 ', '<h4 ', $params[0]['before_title'] );
    			$params[0]['after_title']  = str_replace( '</h2> ', '</h4> ', $params[0]['after_title'] );
    		}
    		return $params;
    	}
    );
    
    // コメントを非表示に
    add_action(
    	'snow_monkey_get_template_part_template-parts/discussion/comments',
    	function() {
    	}
    );
    
    // トラックバックを非表示に
    add_action(
    	'snow_monkey_get_template_part_template-parts/discussion/pings',
    	function() {
    	}
    );
    
    // 前後の投稿
    add_filter( 'gettext', function( $translation, $text, $domain ) {
    	if ( 'snow-monkey' === $domain && 'Old post' === $text ) {
    		return '前の記事';
    	}
    	elseif ( 'snow-monkey' === $domain && 'New post' === $text ) {
    return '次の記事';
    }
    	return $translation;
    }, 10, 3 );
    
    // 記事一覧の日付の位置
    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug, $name, $vars ) {
    		if ( 'template-parts/loop/entry-summary' === $slug && 'post' === $name ) {
    			if ( 'rich-media' === $vars['_entries_layout'] ) {
    				$html = preg_replace( '|<div class="c-entry-summary__meta">.*?</div>|ms', '', $html );
    				ob_start();
    				\Framework\Helper::get_template_part( 'template-parts/loop/entry-summary/meta/meta' );
    				$meta = ob_get_clean();
    				$html = str_replace( '<h2 class="c-entry-summary__title">', $meta . '<h2 class="c-entry-summary__title">', $html );
    			}
    		}
    		return $html;
    	},
    	10,
    	4
    );
    
    // 投稿日でなく更新日
    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug ) {
    		if ( 'template-parts/loop/entry-summary/meta/meta' === $slug ) {
    			return preg_replace(
    				'|<li class="c-meta__item c-meta__item--published">.*?</li>|ms',
    				'<li class="c-meta__item c-meta__item--modified">' . get_the_modified_time( get_option( 'date_format' ) ) . '</li>',
    				$html
    			);
    		}
    		return $html;
    	},
    	10,
    	2
    );
    
    // 
    add_filter(
    	'inc2734_wp_contents_outline_view_render',
    	function( $html, $slug, $name, $vars ) {
    		if ( 'wp-contents-outline' === $slug ) {
    			return preg_replace(
    				'|<h2 class="wpco__title">(.*?)</h2>|',
    				'<div class="wpco__title">$1</div>"',
    				$html
    			);
    		}
    		return $html;
    	},
    	10,
    	4
    );
    
    /*****目次*****/
    .wpco{
    	position: relative;
    	width: 100% !important;
    	margin: 2.5em 0;
    	background: #f9f9f9;
    	box-shadow: 0 1.5px 2.4px rgba(0,0,0,.15);
    		font-size: 15px;
    }
    .wpco .contents-outline a {
        flex-direction: row;
        padding: .23rem 0;
    }
    .wpco .contents-outline a:before {
        content: '';
        width: 10px;
        height: 10px;
        border-radius: 100%;
        margin-top: 1em;
        font-size: 1px;
        overflow: hidden;
        padding: 0;
    	background-color: #d5d5d5!important;
    }
    .wpco .contents-outline ol ol {
    	font-size: 14px;
    }
    
    0
    いいねをした人: 居ません
    #28305
    アバター画像キタジマ タカシ
    参加者
    2433

    このとき、バージョン情報に気をつけるべきと言う事は見たのですが、コレって、各テンプレートの上部にあるversion部分を指していると言う事で良いですかね?

    テンプレート上部にある @version によるバージョンチェックは「子テーマでのテンプレート上書き」のときのみおこなわれます。なので My Snow Monkey でやる場合は、Snow Monkey のアップデートによりそのテンプレートに更新が入っても(@version があがっても)、警告はでないということになりますね。

    基本的には元々あるファイルをコピーしてきて、必要最低限のif文などを入れて独自テンプレの差し込みをHelperでやっているという感じなんですが…どうでしょう?

    差し込む位置が、str_repace()preg_replace() で指定できるなら、テンプレート上書きではなく snow_monkey_template_part_render での置換がおすすめです(そのほうが Snow Monkey アップデート時の影響を最小限にできる可能性が高いため)。

    下記が参考になるかも知れません。

    str_repace()preg_replace() で指定できる部分でないなら、テンプレート上書きになりますかね。

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

    「Snow Monkey: 最近の投稿ウィジェット」は、

    Helper::get_template_part(
    	'template-parts/widget/snow-monkey-posts',
    	'recent',
    	[ ... ]
    );

    というように、Helper::get_template_part() というメソッドでテンプレートを読み込んで表示しているのですが、このメソッドには HTML を書き換えるフィルターフックが仕込んであるので、それを使って str_replace()preg_replace() することは可能です。

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug, $name ) {
    		if ( 'template-parts/widget/snow-monkey-posts' === $slug && 'recent' === $name ) {
    			// ここで書き換えて返す
    			$html = preg_replace( ... );
    			return $html;
    		}
    		return $html;
    	},
    	10,
    	3
    );

    置換で済まないレベルでもっとガッツリ変更が必要な場合はまた別の方法があるのでそのときは言ってください。

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

    すみません、追加で、アーカイブページに表示される日付を投稿日ではなく更新日にすることは可能でしょうか?

    下記を貼ってみてください。

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug ) {
    		if ( 'template-parts/loop/entry-summary/meta/meta' === $slug ) {
    			return preg_replace(
    				'|<li class="c-meta__item c-meta__item--published">.*?</li>|ms',
    				'<li class="c-meta__item c-meta__item--modified">' . get_the_modified_time( get_option( 'date_format' ) ) . '</li>',
    				$html
    			);
    		}
    		return $html;
    	},
    	10,
    	2
    );
    0
    いいねをした人: 居ません
    アバター画像キタジマ タカシ
    参加者
    2433

    \Framework\Helper::get_template_part( の行が ( の部分で切れちゃってるからですね。下記で貼り直してください。

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug, $name, $vars ) {
    		if ( 'template-parts/loop/entry-summary' === $slug && 'post' === $name ) {
    			if ( 'rich-media' === $vars['_entries_layout'] ) {
    				$html = preg_replace( '|<div class="c-entry-summary__meta">.*?</div>|ms', '', $html );
    				ob_start();
    				\Framework\Helper::get_template_part( 'template-parts/loop/entry-summary/meta/meta' );
    				$meta = ob_get_clean();
    				$html = str_replace( '<h2 class="c-entry-summary__title">', $meta . '<h2 class="c-entry-summary__title">', $html );
    			}
    		}
    		return $html;
    	},
    	10,
    	4
    );
    0
    いいねをした人: 居ません
    Takeru
    閲覧者
    0

    再度エラーが出てしまいました、何度もすみませんがご確認お願いします…

    wp-content/plugins/my-snow-monkey/my-snow-monkey.php ファイルの81行目のエラーのため、PHP コードの変更をロールバックしました。修正し、もう一度保存してください。

    syntax error, unexpected ';', expecting ',' or ')'

     

    念の為、全コード載せときます!

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug, $name, $vars ) {
    		if ( 'template-parts/loop/entry-summary' === $slug && 'post' === $name ) {
    			if ( 'rich-media' === $vars['_entries_layout'] ) {
    				$html = preg_replace( '|<div class="c-entry-summary__meta">.*?</div>|ms', '', $html );
    				ob_start();
    				\Framework\Helper::get_template_part(
    				$meta = ob_get_clean();
    				$html = str_replace( '<h2 class="c-entry-summary__title">', $meta . '<h2 class="c-entry-summary__title">', $html );
    			}
    		}
    		return $html;
    	},
    	10,
    	4
    );
    0
    いいねをした人: 居ません
    アバター画像キタジマ タカシ
    参加者
    2433

    CSS の調整は必要かもしれませんが、とりあえずこんな感じでしょうか。My Snow Monkey プラグインか子テーマの functions.php に下記を追加してみてください。

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug, $name, $vars ) {
    		if ( 'template-parts/loop/entry-summary' === $slug && 'post' === $name ) {
    			if ( 'rich-media' === $vars['_entries_layout'] ) {
    				$html = preg_replace( '|<div class="c-entry-summary__meta">.*?</div>|ms', '', $html );
    				ob_start();
    				Helper::get_template_part( 'template-parts/loop/entry-summary/meta/meta' );
    				$meta = ob_get_clean();
    				$html = str_replace( '<h2 class="c-entry-summary__title">', $meta . '<h2 class="c-entry-summary__title">', $html );
    			}
    		}
    		return $html;
    	},
    	10,
    	4
    );
    0
    いいねをした人: 居ません
    #26602

    返信が含まれるトピック: 追尾型バナー設置機能がほしい

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

    特定の1ページのみ、または、特定のカテゴリ・タグのみに表示したい場合は、どのようにコードを記載すればキレイに動作するかご教授頂けますと幸いです。

    例えばこんな感じでしょうか。

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug ) {
    		// Footer CTA じゃないときは無視
    		if ( 'footer-cta' !== $slug ) {
    			return $html;
    		}
    
    		// 以下、Footer CTA の場合
    		// Post ID が 5 の固定ページの場合は表示
    		if ( is_page( 5 ) {
    			return $html;
    		}
    
    		// カテゴリー ID が 6 のカテゴリーページの場合は表示
    		if ( is_page( 5 ) {
    			return $return;
    		}
    
    		// それ以外の場合は表示しない
    		return;
    	},
    	10,
    	2
    );

    下記のページのその他の条件分岐タグがまとめてあるので、いろいろ試してみてください!

    カスタマイザーで px 数を入力させる形になっていると、とても使いやすいと思います!

    こちら実装できそうか調査すすめますね。

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

    返信が含まれるトピック: 追尾型バナー設置機能がほしい

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

    1.ページごとに表示・非表示設定

    ページごとに設定を設けるのは煩雑になりそうなので、GUI をつくるのはどうかなと思いますが、現状でもコードで出し分けは可能です。例えば下記のコードだと、ID が5の固定ページの場合は表示しない、となります。

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug ) {
    		// Footer CTA じゃないときは無視
    		if ( 'footer-cta' !== $slug ) {
    			return $html;
    		}
    
    		// 以下、Footer CTA の場合
    		// Post ID が 5 の固定ページの場合は何も表示しない
    		if ( is_page( 5 ) ) {
    			return;
    		}
    
    		return $html;
    	},
    	10,
    	2
    );

    2.追尾バナーを複数作成

    これはちょっと現状の仕組みだと難しいですね…。

    表示開始位置を遅らせる

    これは、できそう、かつあったほうが良さそうなので実装したいなと思うのですが、どうやって指定させてら良いのか迷いますね…。「ページ内の最初のh2」としちゃうとh2が無いページだと CTA が表示されない、とかなっちゃうので、例えば1000pxスクロールしたら、とかならカスタマイザーで px 数を入力させる形にできるかなと。

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

    返信が含まれるトピック: パンくず部分を帯状にするには?

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

    例えばこんな感じはどうでしょうか?

    PHP

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug ) {
    		if ( 'template-parts/common/breadcrumbs' !== $slug ) {
    			return $html;
    		}
    		return '<div class="p-breadcrumbs-wrapper"><div class="c-container">' . $html . '</div></div>';
    	},
    	10,
    	2
    );

    CSS

    .p-breadcrumbs-wrapper {
      margin: 0 calc(50% - 50vw);
      background-color: #f5f5f5;
      padding: .5em;
    }
    
    .p-breadcrumbs-wrapper .c-container {
      padding-right: 1.86957rem;
      padding-left: 1.86957rem;
    }
    
    @media (min-width: 40em) {
      .p-breadcrumbs-wrapper .c-container {
        padding-right: calc(1.86957rem + env(safe-area-inset-right));
        padding-left: calc(1.86957rem + env(safe-area-inset-left));
      }
    }
    
    .p-breadcrumbs-wrapper .c-breadcrumbs {
      margin: 0 !important;
    }
    0
    いいねをした人: 居ません
    #25767

    返信が含まれるトピック: マルチサイトの時のヘッダ

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

    @ケミさん
    グローバル変数を使うよりこちらのほうが良いかも(あと、$html は引数から渡ってくるので ob_start() はしなくて大丈夫だと思います)。

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug ) {
    		$blog_id = get_current_blog_id();
    		if ( 'template-parts/header/1row' === $slug ) {
    			if ( 1 === $blog_id ) {
    				// 置換
    				$html = str_replace( '...', '...', $html );
    			}
    		}
    		return $html;
    	},
    	10,
    	2
    );
    0
    いいねをした人: 居ません
    #25761

    返信が含まれるトピック: マルチサイトの時のヘッダ

    Hatsuki
    閲覧者
    6

    マルチサイトでのサイト毎の分岐方法は下記のサイトが参考になると思います。

    もし、子テーマでされる場合であれば
    template-parts/header/1row.phpの変更したい箇所に、それぞれの分岐処理を挟めば良いと思います。

    プラグインでされる場合であれば

    global $current_blog;
    $blog_id = $current_blog->blog_id;
    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug, $name, $vars ) {
    		if ( $slug === 'template-parts/header/1row' ) {
    			ob_start();
    			\Framework\Helper::get_template_part( 'template-parts/header/1row', $name, $vars );
    			$html = ob_get_clean();
    			if ( 1 === $blog_id ) {
    				// 置換したいhtml内容
    			}
    		}
    		return $html;
    	},
    	10,
    	4
    );

    と言う感じで、こちらも分岐でそれぞれの置換をやる形でどうでしょうか?
    または分岐で読み込むテンプレートを変更するのも良いと思います。

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

    返信が含まれるトピック: Snow Monkey Blocksのカスタマイズに関して

    Hatsuki
    閲覧者
    6

    > あ、「li をカスタマイズ」と書いていたのでスルーしましたが、li の中の .c-entry-summary コンポーネントは Helper::get_template_part() で呼ばれているのでフック通ります。

    あ、なるほど。

    > あーこれはバグかも…です。

    一応調査っすね。再現などで解らない事あれば聞いてください。
    widgets/snow-monkey-posts.phpHelper::get_template_partでは正しく指定されている(値も正常っぽい)のに
    その後のsnow_monkey_template_part_renderだと、$vars['_excerpt_length'] = NULLのみになってしまうっぽいって感じです。

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

    返信が含まれるトピック: Snow Monkey Blocksのカスタマイズに関して

    Hatsuki
    閲覧者
    6

    ちょっと確認したかったので再度トピックオープンしました。

    その後にパッチ的にsnow_monkey_template_part_renderを通すように改修できないこともないとは思うのですが、結局他のブロックもsnow_monkey_template_part_renderを通るわけではない

    調べてみたらウィジェットでもrenderフックは通ってるようでした…。
    ただ、通り方がちょっと特殊な感じで通ってるのでややこしかった…と。

    add_filter(
    	'snow_monkey_template_part_render',
    	function ( $html, $slug, $name, $vars ) {
    		if ( $slug === 'template-parts/loop/entry-summary' ) {
    			if ( $vars['_entries_layout'] === 'rich-media' ) {
    				ob_start();
    				<strong>ほにゃらら</strong>
    				$html = ob_get_clean();
    			}
    		}
    		return $html;
    	},
    	10,
    	4
    );

    と書いて、最新の投稿ブロックを実行すると$vars['_entries_layout']が無いと言うNoticeが出た状態で処理されているっぽいです。
    $varsに渡されてないだけでrenderフックは通る結果になるので。

    ウィジェットを使わない場合は正しくvarsに代入されているので、ウィジェット時に渡されないのを注意すると言うのがちょっと使い方として…な所もあるので、もうちょいとこちらでも考えてみようかと思います。(そもそも使い方が悪い気もしてる)
    一応、報告まで。

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

    返信が含まれるトピック: Snow Monkey Blocksのカスタマイズに関して

    Hatsuki
    閲覧者
    6

    inc2734_の方のフックでしたかー(汗)

    > 結局他のブロックも snow_monkey_template_part_render を通るわけではない

    確かに…微妙と言うか色々面倒な事になりますね。了解です。

    使いたい部分でinc2734_wp_awesome_widgets_render_widgetで適度にカスタマイズをするか通すようにするとかの方が楽かもって感じに思えますし、ちょっとそれで試してみてカスタマイズで質問が出たらまた別トピックで聞きますー。

    0
    いいねをした人: 居ません
15件の結果を表示中 - 211 - 225件目 (全239件中)

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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