「カスタムフィールド 表示」の検索結果

15件の結果を表示中 - 31 - 45件目 (全74件中)
  • 投稿者
    検索結果
  • #89230
    diiih
    参加者
    17

    ありがとうございます。

    いただいたコードですが下記のようにするということでしょうか。これではカスタムフィールドも表示されませんでした。使い方が間違っていますでしょうか。

    add_action(
    'snow_monkey_get_template_part_template-parts/loop/entry-summary/content/content-{contract}',
    function( $html ) {
    if (get_post_type() === 'contract'): //カスタム投稿contractに限定する
    // 以降の出力を変数に格納する
    ob_start();
    ?>
    <div class="contract-data">
    <p>表示1:<?php echo esc_html (get_field('type')); ?></p>
    <p>表示2:<?php echo esc_html (get_field('station')); ?></p>
    <p>表示3:<?php echo esc_html (get_field('time')); ?></p>
    </div>
    <?php
    // 変数に格納する
    $type = ob_get_clean();
    // </header>を書き換える
    return str_replace(
    '</header>',
    '</header>'.$type,
    $html
    );
    endif;
    return $html;
    }
    );
    0
    いいねをした人: 居ません
    #89135

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

    *****
    [ プライベートトピックのため非表示 ]
    0
    いいねをした人: 居ません
    GONSY
    参加者
    846

    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
    いいねをした人:
    shi
    閲覧者
    5

    GONSY様、はじめまして。ありがとうございます。

    分かりづらく申し訳ございません。

     

    >①カスタム投稿タイプとのことですが、任意のタクソノミーの投稿ブロックのみで良いでしょうか?

    任意のタクソノミーの投稿ブロックで良いです。

     

    >②最近の投稿ブロックブロックやアーカイブなどで表示することはありますか?

    最近の投稿ブロックはカスタムではない、標準の「投稿」を表示する時に使用しています。

     

    >③投稿ページ(イベントごとの個ページ)での表示は不要でしょうか?

    カスタム投稿(events)で作成した投稿は、個別の投稿ページ=single-events.php(plugins/my-snow-monkey/override/single-events.php)で表示されるようしています。

    任意のタクソノミー

    >④カスタムフィールドはどんな方法で入力させていますか?

    Custom Post Type UIでカスタム投稿タイプ、Advanced Custom Fieldsでカスタムフィールドを作っています。

     

    答えになっていますでしょうか。

    よろしくお願いいたします。

    1
    いいねをした人:
    GONSY
    参加者
    846

    shiさん、はじめまして。
    何点か質問があります。

    1. カスタム投稿タイプとのことですが、任意のタクソノミーの投稿ブロックのみで良いでしょうか?
    2. 最近の投稿ブロックブロックやアーカイブなどで表示することはありますか?
    3. 投稿ページ(イベントごとの個ページ)での表示は不要でしょうか?
    4. カスタムフィールドはどんな方法で入力させていますか?

    良かったら教えてください。

    3
    いいねをした人:
    #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
    いいねをした人:
    Takaaki Mochizuki
    閲覧者
    0

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

    以下の記事を参考にし、一覧ページにカスタムフィールドを反映させる設定を進めております。
    ですが、単一のカスタムフィールしか表示されず、複数のカスタムフィールを表示させる方法をご教示頂けないでしょうか。宜しくお願い致します。

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

    こんにちは。
    カスタムフィールドをどこに表示させるかで、方法は変わってくると思います。
    記事の本文中に差し込みたい場合は、Oleinさんのおっしゃられているようにショートコードを使う方法が良いと思いますが、もし記事本文の下とかに表示するのならば、アクションフックを使用するのが簡単だと思います。
    記事本文の下に表示する場合は、snow_monkey_append_entry_content で表示できます。

    add_action(
    	'snow_monkey_append_entry_content',
    	function() {
    		the_field( 'result' );
    	}
    );

    参考リンク snow_monkey_append_entry_content

    2
    いいねをした人:
    #78992
    アバター画像キタジマ タカシ
    参加者
    2528

    まず、多くの場合 single-cast.php のような大本になるテンプレートの追加は必要ありません(例えばページレイアウトを独自に操作したい場合は必要になると思います。)。

    追加しなくても Snow Monkey の singular.php が標準的なレイアウトを適用して、カスタム投稿タイプ用のビューファイル(/templates/view/content-cast.php)を呼び出します(ない場合は Snow Monkey の /templates/view/content.php が呼び出されます)。

    カスタム投稿タイプ、カスタムフィールドを制作したのですが、カスタムフィールドをWEB画面に表示できません。

    WordPress のカスタムフィールドは、カスタムフィールドに値を保存しただけでは何も表示されません。表示用の処理を追加する必要があります。添付いただいたトピックではカスタムフィールドの値を表示するショートコードをつくって対処しているようですね。参考にされたということですが、ショートコードは作成済みでしょうか?

    この場合、/templates/view/content-cast.phpを設置して中身を変更していけばよろしいのでしょうか?

    ショートコードを使わずに直接テンプレートに記述する場合は設置したほうがラクだと思います。

    0
    いいねをした人: 居ません
    #78935
    小松
    参加者
    0

    お時間を作って調べていただきありがとうございます。

    知人とも相談した結果、投稿タイプでプラグインを使わず一から作ることになりました。

    カスタム投稿タイプ、カスタムフィールドを制作したのですが、カスタムフィールドをWEB画面に表示できません。下記のフォーラムを参考にさせていただきましたが

    テンプレートは、single-cast.phpで表示されており、内容はsingular.phpからコピーして以下の通りです。

    ======================================

    /**
     * @package snow-monkey
     * @author inc2734
     * @license GPL-2.0+
     * @version 13.2.0
     */
    
    use Framework\Controller\Controller;
    
    $_post_type = get_post_type();
    
    $layout = get_theme_mod( $_post_type . '-layout' );
    $layout = $layout ? $layout : get_theme_mod( 'post-layout' );
    
    $content_view = get_theme_mod( $_post_type . '-view' );
    $content_view = $content_view ? $content_view : $_post_type;
    
    Controller::layout( $layout );
    Controller::render( 'content', $content_view );

    ======================================

    この場合、/templates/view/content-cast.phpを設置して中身を変更していけばよろしいのでしょうか?

    このページのコードを何個か入力してみたのですが何も表示されませんでした。

    問題点や勘違いしていることがありましたらご指摘いただけるとありがたいです。

    よろしくお願いいたします。

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

    をみてとりあえずインストールと詳細ページ用のテンプレートパーツを追加するところまでやってみたのですが、正直なところエラー処理が甘く、未設定の項目があると Fatal Error になったりして正しく表示させるところまで持っていけませんでした。このプラグインに詳しくないので、調査するにはこのプラグインのコードを読んで確認していかないといけませんが、僕のプロダクトではない&WordPress 公式ディレクトリのプラグインでもないのでちょっとそこまでやるのは難しいです。

    単純にページを表示するだけなら何もテンプレートパーツを追加しなくても表示だけはされます。個人的にはそこから必要なカスタムフィールド名を調べて自分でテンプレートパーツをつくったほうがラクなんじゃないかと感じました。

    Snow Monkey はページを表示するためのテンプレートが「レイアウトファイル」と「ビューファイル」にわかれており、例えば cast というカスタム投稿の場合は、一覧は /templates/view/archive-cast.php、詳細ページは /templates/view/content-cast.php をつくればレイアウトはそのままに中身の部分だけ独自につくることができます。

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

    「投稿ページに記載したイベントの年月日」は、おっしゃる通り単に投稿の中に段落ブロックに年月日のテキストを入れているだけです。

    投稿のコンテンツの中に、段落ブロックなどで入力しただけのテキスト(本件であればイベントの年月日)を、アーカイブなど他の場所に引っ張ってきて表示させるということはできません。

    おそらく実現されたいことを拝見する限りでは、投稿に対してカスタムフィールドを用意し、そちらに年月日情報を入力して投稿と紐づけます。

    そちらをPHPなどで処理をして、アーカイブ一覧ページの各投稿部分に表示させるという方法が一般的かと思います。

    そのためには、My Snow Monkey などでプラグイン形式でカスタマイズできる環境を用意し、PHPへの多少の理解が必要になります。

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

    WordPress の仕様というか HTML の仕様というかそんな感じです。

    デフォルトのカスタムフィールドの入力欄を表示する状態にしていると、僕がつくったメールアドレスの入力欄がまずあって、その後にデフォルトのカスタムフィールドの入力欄が続く形になります。この場合、僕がつくったメールアドレスの入力欄の名前と、後続するデフォルトのカスタムフィールドの入力欄の中にあるメールアドレス用の入力欄の名前が重複する形になり、その場合は後にあるほうの入力欄の送信値が優先される状態になります(これが HTML の仕様です)。

    なので前にある「僕がつくったメールアドレスの入力欄」に入力したとしても、後にある「後にデフォルトのカスタムフィールドの入力欄」の値(空の値)で上書きされてしまい、入力した値が反映されないようにみえる、ということになります。

    ということでトピック閉じます!

    0
    いいねをした人: 居ません
    #73178
    雪田将太
    閲覧者
    0

    遅くなりすみません。
    カスタムフィールドを表示させていて、カスタムフィールドに入力して解決できました。
    カスタムフィールドを非表示にしても解決するんですね。
    ありがとうございました。

    0
    いいねをした人: 居ません
    #73177
    天根 静也
    参加者
    4

    横からすいません。
    今まさに同じ状況で行き詰まっていていたのですが、デフォルトのカスタムフィールド入力欄を非表示にすると解決しました。

    1
    いいねをした人: 居ません
15件の結果を表示中 - 31 - 45件目 (全74件中)

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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