メインコンテンツへ移動

キタジマ タカシ

フォーラムへの返信

15件の投稿を表示中 - 1,351 - 1,365件目 (全7,539件中)
  • 投稿者
    投稿
  • アバター画像キタジマ タカシ
    参加者
    2606

    コード書いてみました。前述したようにメンテナンス性が非常によろしくなさそうなので、あまり推奨はできません…。
    著者の前にカテゴリー名が表示されます。

    add_filter(
    	'render_block_snow-monkey-blocks/spider-pickup-slider',
    	function( $block_content, $block, $wp_block ) {
    		$default_attributes = array();
    		$meta_attributes = (array) $wp_block->block_type->attributes;
    		foreach ( $meta_attributes as $name => $meta_attribute ) {
    			$default_attributes[ $name ] = isset( $meta_attribute['default'] )
    				? $meta_attribute['default']
    				: null;
    		}
    
    		$attributes = array_merge( $default_attributes, $block['attrs'] );
    
    		ob_start();
    $query_args = array(
    	'post_type'        => 'any',
    	'posts_per_page'   => 0 === $attributes['postsPerPage'] ? -1 : $attributes['postsPerPage'],
    	'suppress_filters' => false,
    	'tax_query'        => array(
    		array(
    			'taxonomy' => 'post_tag',
    			'terms'    => array( 'pickup' ),
    			'field'    => 'slug',
    		),
    	),
    );
    
    if ( $attributes['random'] ) {
    	$query_args = array_merge(
    		$query_args,
    		array(
    			'orderby' => 'rand',
    		)
    	);
    }
    
    $query = new WP_Query(
    	array_merge(
    		$query_args,
    		array(
    			'ignore_sticky_posts' => true,
    			'no_found_rows'       => true,
    		)
    	)
    );
    
    if ( ! $query->have_posts() ) {
    	return;
    }
    
    $classnames[] = 'smb-spider-pickup-slider';
    if ( ! empty( $attributes['className'] ) ) {
    	$classnames[] = $attributes['className'];
    }
    if ( isset( $attributes['align'] ) ) {
    	if ( 'full' === $attributes['align'] ) {
    		$classnames[] = 'alignfull';
    	} elseif ( 'wide' === $attributes['align'] ) {
    		$classnames[] = 'alignwide';
    	}
    }
    
    // @todo 本当は get_block_wrapper_attributes を使いたいけど何故かエラーがでる
    // $block_wrapper_attributes = get_block_wrapper_attributes(
    // 	array(
    // 		'class' => implode( ' ', $classnames ),
    // 	)
    // );
    ?>
    
    <div
    	<?php // echo $block_wrapper_attributes; ?>
    	class="<?php echo esc_attr( implode( ' ', $classnames ) ); ?>"
    	data-interval="<?php echo esc_attr( 0 < $attributes['interval'] ? $attributes['interval'] * 1000 : null ); ?>"
    	data-fade="<?php echo esc_attr( $attributes['fade'] ? 'true' : 'false' ); ?>"
    >
    	<div class="spider">
    		<div class="spider__canvas">
    			<?php $index = 0; ?>
    			<?php while ( $query->have_posts() ) : ?>
    				<?php
    				$query->the_post();
    				$thumbnail_size = wp_is_mobile() ? 'large' : 'full';
    
    				// ここからカテゴリーの追加
    				$categories = get_the_category( get_the_ID() );
    				?>
    				<div class="spider__slide" data-id="<?php echo esc_attr( $index ); ?>">
    					<?php the_post_thumbnail( $thumbnail_size, array( 'class' => 'spider__figure' ) ); ?>
    
    					<div class="smb-spider-pickup-slider__item">
    						<div class="smb-spider-pickup-slider__item__title">
    							<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    						</div>
    
    						<ul class="smb-spider-pickup-slider__item__meta c-meta">
    							<?php // ここでカテゴリーを表示 ?>
    							<li class="c-meta__item c-meta__item--category"><?php echo esc_html( $categories[0]->name ); ?></li>
    							<li class="c-meta__item c-meta__item--author"><?php echo get_avatar( get_post()->post_author ); ?><?php echo esc_html( get_the_author() ); ?></li>
    							<li class="c-meta__item"><?php echo esc_html( get_the_time( get_option( 'date_format' ) ) ); ?></li>
    						</ul>
    					</div>
    				</div>
    				<?php $index ++; ?>
    			<?php endwhile; ?>
    			<?php wp_reset_postdata(); ?>
    		</div>
    
    		<?php if ( $attributes['arrows'] ) : ?>
    			<button class="spider__arrow" data-direction="prev">Prev</button>
    			<button class="spider__arrow" data-direction="next">Next</button>
    		<?php endif; ?>
    	</div>
    
    	<?php if ( $attributes['dots'] ) : ?>
    		<div
    			class="spider__dots"
    			data-thumbnails="<?php echo esc_attr( $attributes['dotsToThumbnail'] ? 'true' : 'false' ); ?>"
    		>
    			<?php $index = 0; ?>
    			<?php while ( $query->have_posts() ) : ?>
    				<?php
    				$query->the_post();
    				?>
    					<button
    						class="spider__dot"
    						data-id="<?php echo esc_attr( $index ); ?>"
    						<?php if ( $attributes['dotsToThumbnail'] ) : ?>
    							data-has-thumbnail="<?php echo esc_attr( has_post_thumbnail() ? 'true' : 'false' ); ?>"
    						<?php endif; ?>
    					>
    						<?php if ( $attributes['dotsToThumbnail'] ) : ?>
    							<?php the_post_thumbnail( 'medium', array( 'class' => 'spider__figure' ) ); ?>
    						<?php else : ?>
    							<?php echo esc_html( $index ); ?>
    						<?php endif; ?>
    					</button>
    				<?php $index ++; ?>
    			<?php endwhile; ?>
    			<?php wp_reset_postdata(); ?>
    		</div>
    	<?php endif; ?>
    </div>
    		<?php
    		return ob_get_clean();
    	},
    	10,
    	3
    );
    1
    Who liked:
    アバター画像キタジマ タカシ
    参加者
    2606

    もしかしたら今後のアップデートで影響がでるかもしれませんが、とりあえず現状ではこんな感じでしょうか…。

    add_filter(
    	'wpp_custom_html',
    	function( $popular_posts, $instance ) {
    		global $post;
    		ob_start();
    		?>
    		<ul class="c-entries c-entries--rich-media">
    				<?php foreach ( $popular_posts as $popular_post ) : ?>
    					<?php $post = get_post( $popular_post->id ); ?>
    					<?php setup_postdata( $post ); ?>
    					<li class="c-entries__item">
    						<?php
    						$taxonomies = get_post_taxonomies( get_the_ID() );
    						$_taxonomy  = ! empty( $taxonomies[0] ) ? $taxonomies[0] : false;
    						$_terms     = ( $_taxonomy ) ? get_the_terms( get_the_ID(), $_taxonomy ) : [];
    
    						\Framework\Helper::get_template_part(
    							'template-parts/loop/entry-summary',
    							$args['_name'],
    							array(
    								'_entries_layout'       => 'rich-media',
    								'_display_author'       => true,
    								'_display_published'    => true,
    								'_display_item_excerpt' => true,
    								'_terms'                => $_terms ? array( $_terms[0] ) : array(),
    								'_display_meta'         => true,
    							)
    						);
    						?>
    					</li>
    				<?php endforeach; ?>
    			</ul>
    		</div>
    		<?php
    		wp_reset_postdata();
    		return ob_get_clean();
    	},
    	10,
    	2
    );
    1
    Who liked:
    アバター画像キタジマ タカシ
    参加者
    2606

    とうことは、今は

    – タクソノミーAの記事1
    – タクソノミーAの記事2
    – タクソノミーAの記事3
    – タクソノミーAの記事4
    – タクソノミーAの記事5
    – タクソノミーBの記事1
    – タクソノミーBの記事2
    – タクソノミーBの記事3
    – タクソノミーBの記事4
    – タクソノミーBの記事5

    という感じで10件連続で一覧表示してあって、特に A と B が別々の div で囲まれるようなカスタマイズはしていないということですよね?

    このプラグインを使っていると実現難しいでしょうか??

    プラグインを使っているから、というのは特に影響はないかなぁと思うのですが、並列に並んでいる間に要素を追加するというのが結構難しそうですね。

    ちなみにアーカイブページなので11件目以降も存在しえると思うのですが、そのページングはどういう感じになるのでしょうか?

    タクソノミーAの見出し
     └タクソノミーA5つ
    タクソノミーBの見出し
     └タクソノミーB5つ
    ページネーション

    となっていたとしたら、タクソノミー Aの2ページ目に行きたいなーと閲覧者が期待する可能性もあると思いますし、ページネーションがタクソノミーBのもの(実際はアーカイブ甲のもの)と思われる可能性もありそうだなと…。ということだと、そのレイアウトにすること自体を考え直したほうが良いという可能性もあるかなと思ったのですがどうでしょうか?

    2ページ目が存在せず今後も10件で固定だということなら、カスタマイズの方法自体も変わってくるかなーと…。

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2606

    @mrc さん

    ちなみにですが、カテゴリー名とページ上の表示タイトルを別にしたい理由ってどんなものでしょうか?

    0
    Who liked: No user
    返信先: sectionの背景の装飾をしたい #128040
    アバター画像キタジマ タカシ
    参加者
    2606

    まず反映されない原因を確認したほうが良いと思います。

    – 当該ファイルが本番環境のサーバー上に正しくアップロードされているか(画面で表示が反映されている、ではなく、実際に本番環境上のファイルを開いてコードが変更されているか確認)
    – 正しく変更が反映されている場合は、キャッシュや記事の反映漏れ等が考えられそう
    – 変更が反映されていない場合は、All-in-One WP Migration の設定ミス等が考えられそう(All-in-One WP Migration には詳しくないのでなにかそのような設定があるのかもわかりませんが…)

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2606

    アーカイブ甲は、上からAの記事が5つ、その下にBの記事が5つ並んでおり、

    アーカイブ甲は、通常なら投稿日順に一覧が表示されているかと思いますが、上記はどうやって実現していますかね?

    1
    Who liked:
    アバター画像キタジマ タカシ
    参加者
    2606

    いやいやいや、完全に僕のミスなので!!!

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2606

    ですよね…自動アップデートの場合はアクセスがあったら即アップデートされてしまうので…。しばらくお知らせを掲載しておこうと思います…。

    1
    Who liked:
    アバター画像キタジマ タカシ
    参加者
    2606

    すみません!バージョン番号を間違ってしまって、正しくは 20.5.0 になります。一旦 24.5.0 を消してから 20.5.0 をリリースするので、お手数おかけしますが zip でアップデートをお願いします…(24.5.0 のほうが大きくて自動通知はでないので…)

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2606

    v24.5.0 でショーコードを使えるようにしてみたのでアップデートして試してみてください!

    2
    Who liked:
    返信先: sectionの背景の装飾をしたい #127944
    アバター画像キタジマ タカシ
    参加者
    2606

    Snow Monkey には完全に自由に配置する機能は無いので、セクションブロックの中に画像ブロックを配置、それぞれの画像ブロックに独自の CSS クラスを設定、それらの CSS クラスに対して position: absolute 等のスタイルを書く(追加 CSS 等を利用)、がぱっと思いつく方法かなと思います。

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2606

    気になった点がいくつかあるので羅列します。

    – 「PDFのURLを取得できず」というのは、get_field('pdf') で値が取れていないということですか?
    str_replace( 'src="' . get_the_post_thumbnail_url($filefiled) . '"', 'src="' . '"', $html ) だと、サムネイルの URL を空にしようとしているように見えます。(ただし、「ファイルのフィールド名を元にサムネイル URL を取得」しようとしているのでおそらくサムネイルの URL は取得できず、置換には失敗していると思います)
    template-parts/loop/entry-summary/figure/figure を対象としてされていますが、ここにはリンクの HTML は無いと思うので、template-parts/loop/entry-summary を対象にして a 要素の href の値を書き換えるのが正しいのではと思うのですがどうでしょうか?

    1
    Who liked:
    アバター画像キタジマ タカシ
    参加者
    2606

    以下のフィルターフックでは再現できませんでした。

    フック自体通ってないですかね? ログは出力されてない?

    inc2734_wp_awesome_widgets_render_widgetなのか

    確か非推奨のほうは↑のフックを通ったと思いますが、spider のほうのピックアップスライダーは↑のフックは通らないです。

    render_block_snow-monkey-blocks/spider-pickup-slider を通っているとして、このフックはブロックの HTML 出力をまるごと書き換えるフックになるので、pickup タグが付いている投稿の取得からループを回してスライダーとして出力するところまで全部を書かないといけません。コード的には snow-monkey-blocks/dist/spider-pickup-slider/view.php をベースにすることになりますが、大きいのでメンテが大変だとは思います。例えばアップデートでピックアップスライダーブロックに機能が追加されたり HTML の変更が必要な場合はフックしたコードのほうにも反映しないといけません。

    1
    Who liked:
    アバター画像キタジマ タカシ
    参加者
    2606

    あーピックアップスライダーはちょっとむずかしいですね…。最近の投稿ブロックみたいにテンプレートパーツをロードしているわけではないので、render_block_snow-monkey-blocks/spider-pickup-slider フィルターフックでブロックの出力自体をまるごと再定義しないといけないと思います。

    更新が頻繁でないのであれば、コンテンツスライダーブロックで手動でレイアウト&更新したほうが簡単かも…。

    1
    Who liked:
    アバター画像キタジマ タカシ
    参加者
    2606

    テストサイトで 結構たくさんのメニューを絶対パスで書いた場合多分ですがall-in-one migrationで移植する際に(子階層でWordpressを設置した場合)全て書き直す事になるのでは!?と 愚考しまして

    メニュー機能を使っているならデータベース内ですよね? All in One Migration には詳しくないのですが、データベース内は自動的に書き換えてくれないのですかね? ファイルだとダメだと思いますが、その場合は home_url() とか適切に WordPress の関数を使えば大丈夫な気もしますが…。

    もし All in One Migration がデータベース内をうまく置換しれくれなくても、wp-cli の wp search-replace コマンドや、下記のようなツールで置換させることもできはしますね。

    0
    Who liked: No user
15件の投稿を表示中 - 1,351 - 1,365件目 (全7,539件中)

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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