-
投稿者検索結果
-
2020年10月30日 3:31 PM #59992
返信が含まれるトピック: 関連記事のレイアウトをカテゴリー毎に変更や表示・非表示を制御したい
北島様
あ、一応このフォーラムは僕含めサブスクリプション契約者の方は誰でも質問・回答ができる場所でして、宛名があると他の方が答えにくくなると思うので、宛名は無しでお願いします!
関連記事のレイアウトをカテゴリー毎に変更や表示・非表示を制御したいのですが、可能でしょうか。
はい、できます! 例えばカテゴリー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いいねをした人: 居ません2020年10月21日 5:00 PM #59530v11.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いいねをした人: 居ません2020年10月21日 7:56 AM #59449返信が含まれるトピック: snow_monkey_template_part_render_の使い方について
ご返信ありがとうございます。
キャッチアップ画像は変わったようなのですが、
リンクとテキストは元のままのようです。
自分のカスタマイズした部分に問題があるのでしょうか?
一応、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いいねをした人: 居ません2020年10月21日 12:44 AM #59439返信が含まれるトピック: snow_monkey_template_part_render_の使い方について
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いいねをした人: 居ません2020年10月18日 2:42 PM #59285返信が含まれるトピック: 固定ページのコメント欄が表示されなくなった
下記のコードを 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いいねをした人: 居ません2020年10月7日 10:10 AM #58665返信が含まれるトピック: 最新記事一覧のブロックに「新着記事(NEW)」アイコンをつけたい
お二人の方法でも実現できると思うのですが、僕も別な方法を。
レイアウトは「テキスト」の想定です。
追加 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いいねをした人: 居ません2020年9月18日 11:18 AM #57643返信が含まれるトピック: 最新の投稿ブロックで抜粋を表示したとき、2つ目だけ抜粋文字数のフックを通過しない
なるほどです。こちらでも試してみますね。
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いいねをした人: 居ません2020年9月17日 9:35 AM #57559返信が含まれるトピック: 最新の投稿ブロックで抜粋を表示したとき、2つ目だけ抜粋文字数のフックを通過しない
下記の内容で検証してみました。
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いいねをした人: 居ません2020年9月4日 11:18 AM #56761返信が含まれるトピック: 右上のカテゴリーラベルを親カテゴリー限定の表示にしたい(カスタム投稿)
ありがとうございます! ちょっと書いてみました。適宜書き換えて試してみてください(前述のコードは削除せずに新しく追加してください)。
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いいねをした人: 居ません2020年9月4日 10:22 AM #56756返信が含まれるトピック: 右上のカテゴリーラベルを親カテゴリー限定の表示にしたい(カスタム投稿)
追加
現在
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いいねをした人: 居ません2020年9月2日 12:58 PM #56660返信が含まれるトピック: ハンバーガーメニュー下のMENUの文字を変更
2020年8月24日 10:07 AM #56051返信が含まれるトピック: カスタム投稿の一覧で、各投稿のカテゴリーを複数表示したい
上記ページのコードの「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いいねをした人: 居ません2020年8月5日 9:39 AM #54967返信が含まれるトピック: 記事に複数のカテゴリーを登録した場合の優先されるカテゴリー名表示について
下記に差し替えて試してみてください!
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いいねをした人: 居ません2020年8月4日 3:27 PM #54945返信が含まれるトピック: 記事に複数のカテゴリーを登録した場合の優先されるカテゴリー名表示について
このカテゴリーラベルは、その投稿に紐付いた(カテゴリーを含む)タクソノミーとそのタームを一括取得して、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いいねをした人: 居ません2020年7月1日 1:15 PM #53541返信が含まれるトピック: snow_monkey_get_template_partの非推奨について
snow_monkey_get_template_part_args
は大丈夫です! 非推奨化したのはsnow_monkey_get_template_part_テンプレートスラッグ
なフックですね。表記がわかりにかったですね、すみません!♥ 1いいねをした人: 居ません -
投稿者検索結果