「snow_monkey_get_template_part_args」の検索結果

15件の結果を表示中 - 91 - 105件目 (全118件中)
  • 投稿者
    検索結果
  • #60572
    キタジマ タカシ
    参加者
    2258

    いろいろやり方はあると思いますが、主なやり方は2つあります。

    1. カスタマイザーで設定する
    カスタム投稿タイプの個別ページを開いた状態で管理バーからカスタマイザーを開き、デザイン → {カスタム投稿タイプ}ページ設定 → ビューテンプレートで、「投稿」を選択します。
    この設定はビューテンプレートが投稿のものに切り替わるので、シェアボタン含め、投稿で表示されるものがもろもろ表示されるようになります。

    2. My Snow Monkey でテンプレート引数を書き換える

    個別ページは template-parts/content/entry/entry.php を通って表示されるようになっているのですが、このファイルは各要素を表示するかどうかのテンプレート引数を持っているので、これを書き換えることで任意の要素を表示できるようになります。シェアボタンの場合は以下です。)

    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/content/entry/entry',
    	function( $args ) {
    		// news の場合に
    		if ( 'news' === $args['vars']['_post_type'] ) {
    			// シェアボタンを表示
    			$args['vars']['_display_top_share_buttons'] = true;
    		}
    		return $args;
    	}
    );
    0
    いいねをした人: 居ません
    キタジマ タカシ
    参加者
    2258

    北島様

    あ、一応このフォーラムは僕含めサブスクリプション契約者の方は誰でも質問・回答ができる場所でして、宛名があると他の方が答えにくくなると思うので、宛名は無しでお願いします!

    関連記事のレイアウトをカテゴリー毎に変更や表示・非表示を制御したいのですが、可能でしょうか。

    はい、できます! 例えばカテゴリーIDが1のカテゴリーに属する記事を表示したときに、関連記事のレイアウトを「rich-media」にするコードは下記になります。

    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/content/related-posts',
    	function( $args ) {
    		if ( is_singular() ) {
    			if ( in_category( [ 1 ] ) ) {
    				$args['vars']['_entries_layout'] = 'rich-media';
    			}
    		}
    		return $args;
    	}
    );
    0
    いいねをした人: 居ません
    キタジマ タカシ
    参加者
    2258

    v11.7.0 で、矢印クリックに切り替える設定を追加しました。下記のコードを追加すると切り替わります。

    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/nav/global',
    	function( $args ) {
    		$args['vars']['_popup-mode'] = 'click';
    		return $args;
    	}
    );

    ホバーのままで矢印だけ出したい場合は先のコードで下向き矢印がでるようにしました。ただ、クリックモードのときと違って整ってはでないので、CSS で微調整が必要になります。

    例えばこんな感じ。

    .p-global-nav .c-navbar .c-navbar__item[aria-haspopup=true],
    .p-global-nav .c-navbar .c-navbar__subitem[aria-haspopup=true] {
        padding-right: 1.76923rem;
        padding-right: calc(var(--_space, 1.76923rem)*1);
    }
    
    .p-global-nav .c-navbar .c-navbar__item,
    .p-global-nav .c-navbar .c-navbar__subitem {
        position: relative;
    }
    1
    いいねをした人: 居ません
    #59449
    rakumath
    閲覧者
    10

    ご返信ありがとうございます。

    キャッチアップ画像は変わったようなのですが、

    リンクとテキストは元のままのようです。

    自分のカスタマイズした部分に問題があるのでしょうか?

    一応、my snow monkeyに書いているコードを貼ります。

    ↑キャッチアップ画像は同一カテゴリの一つ前の記事ですが、

    テキストやリンクは別カテゴリに存在する記事です。

    <?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;
    }
    
    //iframeのレスポンシブ対応
    function wrap_iframe_in_div($the_content) {
    	if ( is_singular() ) {
    		$the_content = preg_replace('/<iframe/i', '<iframe id="sample"', $the_content);
    	}
    	return $the_content;
    }
    add_filter('the_content','wrap_iframe_in_div');
    
    /**
     * グループネームの取得
     */
    function uamIsUserInGroup($groupName='', $userId='') {
    	if (empty($userId)) {
    		$userId = get_current_user_id();
    	}
    
    	global $userAccessManager;
    
    	if (isset($userAccessManager)) {
    		$userGroupHandler = $userAccessManager->getUserGroupHandler();
    		$userGroupsForUser = $userGroupHandler->getUserGroupsForObject(
    			\UserAccessManager\Object\ObjectHandler::GENERAL_USER_OBJECT_TYPE,
    			$userId
    		);
    
    		foreach($userGroupsForUser as $element) {
    			if ($element->getName() == $groupName) {
    				return true;
    			}
    		}
    	} else {
    		return false;
    	}
    }
    
    /**
     * メニューを非表示にする
     */
    function remove_menus () {
    	if(!current_user_can( 'administrator' )){
    		global $menu;
    		unset($menu[2]); // ダッシュボード
    		unset($menu[4]); // メニューの線1
    		unset($menu[5]); // 投稿
    		unset($menu[10]); // メディア
    		unset($menu[15]); // リンク
    		unset($menu[20]); // ページ
    		unset($menu[25]); // コメント
    		unset($menu[59]); // メニューの線2
    		unset($menu[60]); // テーマ
    		unset($menu[65]); // プラグイン
    		unset($menu[70]); // プロフィール
    		unset($menu[75]); // ツール
    		unset($menu[80]); // 設定
    		unset($menu[90]); // メニューの線3
    	}
    }
    add_action('admin_menu', 'remove_menus');
    
    /**
     * ユーザメニューを非表示にする
     */
    function remove_admin_bar_menus( $wp_admin_bar ) {
    	$wp_admin_bar->remove_menu( 'wp-logo' ); // WordPressロゴ.
    	$wp_admin_bar->remove_menu( 'about' ); // WordPressロゴ / WordPressについて.
    	$wp_admin_bar->remove_menu( 'wporg' ); // WordPressロゴ / WordPress.org.
    	$wp_admin_bar->remove_menu( 'documentation' ); // WordPressロゴ / ドキュメンテーション.
    	$wp_admin_bar->remove_menu( 'support-forums' ); // WordPressロゴ / サポート.
    	$wp_admin_bar->remove_menu( 'feedback' ); // WordPressロゴ / フィードバック.
    
    	//$wp_admin_bar->remove_menu( 'customize' ); // カスタマイズ.
    
    	$wp_admin_bar->remove_menu( 'updates' ); // 更新.
    
    	$wp_admin_bar->remove_menu( 'comments' ); // コメント.
    
    	$wp_admin_bar->remove_menu( 'new-content' ); // 新規投稿.
    	$wp_admin_bar->remove_menu( 'new-post' ); // 新規投稿 / 投稿.
    	$wp_admin_bar->remove_menu( 'new-media' ); // 新規投稿 / メディア.
    	$wp_admin_bar->remove_menu( 'new-page' ); // 新規投稿 / 固定.
    	$wp_admin_bar->remove_menu( 'new-user' ); // 新規投稿 / ユーザー.
    
    	$wp_admin_bar->remove_node('search'); // 検索のメニューを消す。
    
    	if (!current_user_can('level_10')) { //level10以下のユーザーの場合メニューをunsetする
    		//$wp_admin_bar->remove_menu( 'my-account' ); // こんにちは、[ユーザー名]さん.
    		$wp_admin_bar->remove_menu( 'user-info' ); // ユーザー / [ユーザー名].
    		$wp_admin_bar->remove_menu( 'edit-profile' ); // ユーザー / プロフィールを編集.
    		//$wp_admin_bar->remove_menu( 'logout' ); // ユーザー / ログアウト.
    
    		$wp_admin_bar->remove_menu( 'site-name' ); // サイト名.
    		$wp_admin_bar->remove_menu( 'view-site' ); // サイト名 / サイトを表示.
    
    		$wp_admin_bar->remove_menu( 'menu-toggle' ); // メニュー.
    	}
    }
    add_action( 'admin_bar_menu', 'remove_admin_bar_menus', 9999 );
    
    function userprofile_script() {
    	if (!current_user_can('administrator')) {
    		global $hook_suffix;
    		if('index.php' == $hook_suffix) {
    			wp_safe_redirect( home_url() );
    			exit;
    		}
    		if('profile.php' == $hook_suffix) {
    			wp_enqueue_script('userprofile_js', get_stylesheet_directory_uri().'/js/userprofile.js', array('jquery'));
    			wp_safe_redirect( home_url('/loginform/') );
    			exit;
    		}
    	}
    }
    add_action('admin_enqueue_scripts', 'userprofile_script');
    
    //管理バーにメニューを追加する
    function customize_admin_bar_menu( $wp_admin_bar ){
    	//バーにメニューを追加
    	if(is_user_logged_in() and current_user_can( 'administrator' )){
    		$wp_admin_bar->add_menu(array(
    			'parent' => 'site-name', // 親メニューID
    			'id' => 'dashboard_menu2',
    			'meta' => array(),
    			'title' => 'マイページ',
    			'href' => home_url('/loginform/') // ページURL
    		));
    		$wp_admin_bar->add_menu(array(
    			'parent' => 'site-name', // 親メニューID
    			'id' => 'dashboard_menu3',
    			'meta' => array(),
    			'title' => '数学研究部',
    			'href' => home_url('/mathlabo/') // ページURL
    		));
    		$wp_admin_bar->add_menu(array(
    			'parent' => 'site-name', // 親メニューID
    			'id' => 'dashboard_menu4',
    			'meta' => array(),
    			'title' => '専用',
    			'href' => home_url('/rakunan/') // ページURL
    		));
    		$wp_admin_bar->add_menu(array(
    			'parent' => 'site-name', // 親メニューID
    			'id' => 'dashboard_menu5',
    			'meta' => array(),
    			'title' => 'ユーザー一覧',
    			'href' => home_url('wp-admin/users.php') // ページURL
    		));
    	}
    }
    add_action('admin_bar_menu', 'customize_admin_bar_menu', 9999);
    
    /**
     * Snow Monkeyのパスワードのログインコメント
     */
    add_filter(
    	'snow_monkey_member_post_restricted_content_message',
    	function( $message ) {
    		$message = 'この先を閲覧するには<a href="https://rakumath.xyz/loginform/">ログイン</a>してください。';
    		return $message;
    	}
    );
    
    /**
     * ブログ一覧ページとカテゴリーアーカイブページのページレイアウトを1カラムに固定する
     */
    add_filter(
    	'snow_monkey_layout',
    	function( $layout ) {
    		if ( is_home() || is_category() ) {
    			return 'one-column-slim';
    		}
    		return $layout;
    	}
    );
    
    /**
     * Snow Monkeyテーマにカスタム投稿タイプのsingleページのレイアウトをカスタマイザーで変更する方法
     */
    add_action(
    	'after_setup_theme',
    	function() {
    		add_filter(
    			'customize_section_active',
    			function( $active, $section ) {
    				// セクション名が singular-post のとき
    				if ( 'singular-post' === $section->id ) {
    					// news の詳細ページを開いているとき
    					if ( is_singular( 'news' ) ) {
    						// singular-post セクションを表示
    						return true;
    					}
    				}
    				return $active;
    			},
    			10,
    			2
    		);
    	}
    );
    
    /**
     * @param string $html テンプレートの中身
     * @param string $slug 一般テンプレートのスラッグ名
     * @param string $name 特定テンプレートの名前
     * @param array $vars テンプレートに渡された変数
     * @return string 書き換え後の HTML
     *
     * template-parts/common/breadcrumbs.php を書き換える場合
     */
    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/content/prev-next-nav',
    	function( $args ) {
    		// ここで $html を str_replace() や preg_replace() して書き換える
    		$args['vars']['_in_same_term'] = true;
    		return $args;
    	}
    );
    0
    いいねをした人: 居ません
    #59439
    キタジマ タカシ
    参加者
    2258

    snow_monkey_template_part_render_ は HTML の書き換えになるので、_in_same_term のようなテンプレートの引数を書き換えたいときは snow_monkey_get_template_part_args_ を使うことになります。

    下記でどうでしょう?

    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/content/prev-next-nav',
    	function( $args ) {
    		// ここで $html を str_replace() や preg_replace() して書き換える
    		$args['vars']['_in_same_term'] = true;
    		return $args;
    	}
    );
    0
    いいねをした人: 居ません
    #59285
    キタジマ タカシ
    参加者
    2258

    下記のコードを My Snow Monkey プラグイン、あるいは子テーマをお使いであれば子テーマの functions.php に貼り付けてみてください。

    add_filter(
    	'snow_monkey_get_template_part_args_templates/view/content',
    	function( $args ) {
    		if ( 'page' === $args['name'] ) {
    			$args['vars']['_display_comments'] = true;
    		}
    		return $args;
    	}
    );
    1
    いいねをした人: 居ません
    #58665
    キタジマ タカシ
    参加者
    2258

    お二人の方法でも実現できると思うのですが、僕も別な方法を。

    レイアウトは「テキスト」の想定です。

    追加 CSS に下記の CSS を貼り付けてみてください。

    @media (min-width: 64em) {
    	.c-entries--text .c-entry-summary__body > .c-entry-summary__meta {
    	  width: 16em;
      }
    }
    
    .c-entries--text .c-entry-summary__meta .c-meta {
    	display: flex;
    }
    
    .c-entries--text .c-entry-summary__meta .c-meta__item--categories {
    	display: block !important;
    }

    My Snow Monkey に下記のコードを貼り付けてみてください。

    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/term/term',
    	function( $args ) {
    		$days  = 5; // NEWマークを表示する日数
    		$now   = date_i18n( 'U' ); // 今の時間
    		$entry = get_the_time( 'U' ); // 投稿日の時間
    		$term  = date( 'U',( $now - $entry ) ) / 86400;
    		if ( $days > $term ) {
    			$new_term = new stdClass();
    			$new_term->taxonomy = 'my-new';
    			$new_term->term_id  = 0;
    			$new_term->name     = 'NEW';
    			$args['vars']['_terms'] = [ $new_term ];
    		}
    
    		return $args;
    	}
    );
    4
    いいねをした人: 居ません
    キタジマ タカシ
    参加者
    2258

    なるほどです。こちらでも試してみますね。
    53行目のみを書き換えであれば、下記のコードで _excerpt_length だけを書き換えるほうが良いかもしれません(もしかしたらテンプレートの上書き機能に不具合があるかもなので)。

    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/content/content',
    	function( $args ) {
    		$args['vars']['_excerpt_length'] = 20;
    		return $args;
    	}
    );

    お手数をおかけしており申し訳ございません。

    いえいえ、お気になさらずに!

    0
    いいねをした人: 居ません
    キタジマ タカシ
    参加者
    2258

    下記の内容で検証してみました。

    wpmp-config.php の設置と編集

    wp-content/wpmp-config.php を設置し、下記部分を編集。

    $wpmp_conf['excerpt_mblength'] = 10;
    

    ループ内の _excerpt_length を編集

    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/content/content',
    	function( $args ) {
    		$args['vars']['_excerpt_length'] = 20;
    		return $args;
    	}
    );

    ちゃんと反映されているか確認

    add_filter(
    	'excerpt_length',
    	function( $length ) {
    		var_dump( $length );
    		return $length;
    	},
    	10000
    );

    とすると、各ループ内の抜粋部分に int(20) と表示され、切り取られました。ということから考えると、

    2. カスタムテンプレートを用意して$args[‘_excerpt_length’]に数値を指定した
    loop/entry-summary-post.phpを上書きするように準備した上で、53行目を’_excerpt_length’=> 50に変更しました。

    の上書きの方法を静海さんと同じにすると再現するのかな?と思いました。同じ方法で試してみたいと思うので、どのように上書きをしているのか教えてください!

    0
    いいねをした人: 居ません
    キタジマ タカシ
    参加者
    2258

    ありがとうございます! ちょっと書いてみました。適宜書き換えて試してみてください(前述のコードは削除せずに新しく追加してください)。

    add_filter(
    	'snow_monkey_get_template_part_args',
    	function( $args ) {
    		if ( 'template-parts/loop/entry-summary/term/term' === $args['slug'] && 'post' === $args['name'] ) { // 'post' の部分は投稿タイプ名
    			$_terms = get_the_terms( get_the_ID(), 'category' ); // タクソノミー名を指定
    			if ( $_terms ) {
    				$_term = $_terms[0];
    				if ( 0 !== $_term->parent ) {
    					$ancestors = get_ancestors( $_term->term_id, 'category', 'taxonomy' ); // タクソノミー名を指定
    					$top_level_term_id = end( $ancestors );
    					if ( $top_level_term_id ) {
    						$_term = get_term( $top_level_term_id, 'category' ); // タクソノミー名を指定
    					}
    				}
    				$args['vars']['_terms'] = [ $_term ];
    			}
    		}
    		return $args;
    	}
    );
    1
    いいねをした人: 居ません
    gama
    参加者
    35

    追加

    現在 my-snow-monkey.php に

    // 施工例最新のカテゴリーラベルをつける
    add_filter(
    	'snow_monkey_get_template_part_args',
    	function( $args ) {
    		if ( 'template-parts/loop/entry-summary/figure/figure' === $args['slug'] && 'kaniworks' === $args['name'] ) {
    			$args['name'] = 'post';
    		}
    		return $args;
    	}
    );

    とカテゴリーラベルを入れる指示がしてあります。
    これに限定する何かを付け足せばいいんでしょうか?

    0
    いいねをした人: 居ません
    #56660
    Kmical Lights
    閲覧者
    234

    v11.0以降は

    add_filter(
    'snow_monkey_get_template_part_args_template-parts/header/hamburger-btn',
    function ( $args ) {
    	$args['vars']['_label'] = '変更したい文字列';
    	return $args;
    },
    10,
    3
    );

    になりました。

    3
    いいねをした人:
    #56051
    キタジマ タカシ
    参加者
    2258

    上記ページのコードの「post」と「category」の部分を変更すればできるかなと思います。ほとんど同じですがサンプルコードを書いてみました。ご自身の環境にあわせて投稿タイプ名の部分とカスタムタクソノミー名の部分を書き換えて試してみてください!

    add_filter(
    	'snow_monkey_get_template_part_args',
    	function( $args ) {
    		// 記事一覧カテゴリー以外のテンプレートの場合は無視
    		if ( 'template-parts/loop/entry-summary/term/term' !== $args['slug'] ) {
    			return $args;
    		}
    
    		// ターゲットにしたいカスタム投稿名を指定(この例では「news」)
    		if ( 'news' !== $args['name'] ) {
    			return $args;
    		}
    
    		// 表示したいカスタムタクソノミー名を指定(この例では「news_category」)
    		$args['vars']['_terms'] = get_the_terms( get_the_ID(), 'news_category' );
    
    		return $args;
    	}
    );
    3
    いいねをした人: 居ません
    キタジマ タカシ
    参加者
    2258

    下記に差し替えて試してみてください!

    add_filter(
    	'snow_monkey_get_template_part_args',
    	function( $args ) {
    		if ( 'template-parts/loop/entry-summary/term/term' === $args['slug'] && 'post' === $args['name'] ) { // 'post' の部分は投稿タイプ名
    			$_terms = get_the_terms( get_the_ID(), 'category' ); // タクソノミー名を指定
    			if ( $_terms ) {
    				$term = null;
    				foreach ( $_terms as $_term ) {
    					if ( 2 === $_term->parent ) { // 対象にしたい親カテゴリーの ID を指定
    						$term = $_term;
    						break;
    					}
    				}
    				if ( $term ) {
    					$args['vars']['_terms'] = [ $term ];
    				}
    			}
    		}
    		return $args;
    	}
    );
    0
    いいねをした人: 居ません
    キタジマ タカシ
    参加者
    2258

    このカテゴリーラベルは、その投稿に紐付いた(カテゴリーを含む)タクソノミーとそのタームを一括取得して、1つめのタームを表示するようになっています。取得順は特に指定していないので、おそらく ABC 順とかになるんじゃないかと思います。

    下記のコードを My Snow Monkey プラグインか子テーマの functions.php に貼り付けてみてください。

    add_filter(
    	'snow_monkey_get_template_part_args',
    	function( $args ) {
    		if ( 'template-parts/loop/entry-summary/term/term' === $args['slug'] && 'post' === $args['name'] ) { // 'post' の部分は投稿タイプ名
    			$_terms = get_the_terms( get_the_ID(), 'category' ); // タクソノミー名を指定
    			if ( $_terms ) {
    				$args['vars']['_terms'] = [ $_terms[0] ];
    			}
    		}
    		return $args;
    	}
    );

    上記は投稿タイプが「post(投稿)」のときに、カテゴリーラベルを「category」に限定するコードです。「post」の部分を任意の投稿タイプ名、「category」のところを任意のタクソノミー名に変更して試してみてください。

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

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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