kz
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: 投稿記事内の指定文章にタグ付けをするフォーラム: 使い方全般
返信が含まれるトピック: 投稿記事内の指定文章にタグ付けをする記事にPHPを書きたくなったらショートコードの出番です。
以下、未検証なので頑張って動くようにしてみてください。テーマの functions.php 辺りに書く:
add_shortcode( 'tagged_posts', function( $atts = array() ) { extract( shortcode_atts( array( 'tag' => '', 'title' => '' ), $atts ) ); $ret = '<div>' . esc_html( $title ) . '</div>'; $tag = 'data-tag="' . $tag . '"'; $tagged_posts = get_posts( array( 's' => $tag, 'posts_per_page' => -1, // 全件取得 ) ); foreach ( $tagged_posts as $post ) { setup_postdata( $post ); $content = apply_filters( 'the_content', get_the_content() ); if ( preg_match_all( "/<p\s+$tag\s*>(.+?)<\/p>/", $content, $matches ) ) { $title = get_the_title(); foreach ( $matches[1] as $match ) { $ret .= "<div> $match − $title</div>"; } } } wp_reset_postdata(); return $ret; } );
固定ページに書き込む:
[tagged_posts tag="A" title="タグ(A)"]
フォーラム: 使い方全般
返信が含まれるトピック: 投稿記事内の指定文章にタグ付けをするフォーラム: 使い方全般
返信が含まれるトピック: カテゴリー、子カテゴリーのサイドバーをカスタマイズしたい諸々問題なくできますよー
サイドバーのソコの前辺りに下記を書いて、
global $wp_query; echo '@@@<pre>'; unset($wp_query->posts); unset($wp_query->post); unset($wp_query->request); var_dump($wp_query); echo '</pre>@@@';
子カテゴリーを選んだ時
に、以下のようになっていますか?
["is_tax"]=> bool(true)
["queried_object"]=> の中身が所望の子カテゴリー
["queried_object"]=> の中身で ["parent"]=> int(123) // 親カテゴリ(車)のID
差し支えなければ出力された ‘@@@’ 間をココに貼付けてみてください。
フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿の一覧で親と子のタイトルを分岐をしたいカスタム分類にて下記の様に階層化
カスタム投稿タイプを「階層あり」にしてるのではないんですね!わぉ
以下でいかがでしょう。$terms = get_the_terms( $post, 'カスタム分類の名前' ); $term = reset( $terms ); $pid = wp_get_term_taxonomy_parent_id( $term->term_id, 'カスタム分類の名前' ); printf( '<h%1$d>%2$s</h%1$d>', ( $pid ? 2 : 1 ), get_the_title() );
※例外処理は省略しています。
フォーラム: 使い方全般
返信が含まれるトピック: 投稿ページの配下にページを追加(リンク)する場合について例)
- 階層ありの投稿タイプ「乗り物記事」を作成する。
- 「乗り物カテゴリー」タクソノミーを作成して「自動車」「オートバイ」タームを追加する。
- pre_get_posts アクションで子ページを除く。
pre_get_posts アクションで子ページを除く
functions.php(雰囲気):add_action( 'pre_get_posts', 'my_exclude_children' ); function my_exclude_children( $query ) { if ( is_admin() || ! $query->is_main_query() ) { if ( $query->is_post_type_archive( '乗り物記事' ) ) { $query->set( 'post_parent', 0 ); } } }
フォーラム: 使い方全般
返信が含まれるトピック: the_dateで投稿日を表示し、曜日だけ色を変えたい<?php echo the_date('n月j日 <\sp\a\n \c\l\a\s\s="\w-w">l</\sp\a\n>'); ?>
に変更して css で
.w-0 { color: red; } /* 日曜 */ .w-6 { color: blue; } /* 土曜 */
と色を指定します。
フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿の一覧で親と子のタイトルを分岐をしたい<h1><?php the_title();?></h1>
を
printf( '<h%1$d>%2$s</h%1$d>', ( wp_get_post_parent_id( get_the_ID() ) ? 2 : 1 ), get_the_title() );
にすれば OK
フォーラム: 使い方全般
返信が含まれるトピック: カテゴリー、子カテゴリーのサイドバーをカスタマイズしたいsingle.phpにもまったく同じ表示
functions.php:
function my_get_current_term_id() { $pid = 123; // 親カテゴリ(車)のIDに変更してください $id = 0; if ( is_tax() ) { $id = get_queried_object_id(); } else if ( is_single() ) { $terms = get_the_terms( get_the_ID(), 'category' ); $terms = wp_filter_object_list( $terms, array( 'parent' => $pid ) ); $id = reset( $terms )->term_id; } return $id; } class My_Walker_Category extends Walker_Category { function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ) { parent::start_el( $output, $category, $depth, $args, $id ); if ( ( is_tax() || is_single() ) && $category->parent ) { if ( $category->term_id == my_get_current_term_id() ) { $posts = get_posts( array( 'nopaging' => true, 'tax_query' => array( array( 'taxonomy' => 'category', 'terms' => $category->term_id, ), ), ) ); if ( ! empty( $posts ) ) { $output .= '<ul>'; foreach ( $posts as $post ) { $output .= sprintf( '<li><a href="%1$s">%2$s</a></li>', get_permalink( $post ), get_the_title( $post ) ); } $output .= '</ul>'; } } } } }
サイドバー:
$walker = new My_Walker_Category; echo ' <ul>',$walker->walk( get_terms( 'category', 'get=all' ), 0, array( 'current_category' => my_get_current_term_id(), 'style' => 'list', 'use_desc_for_title' => false, ) ),'</ul> ';
フォーラム: 使い方全般
返信が含まれるトピック: カテゴリー、子カテゴリーのサイドバーをカスタマイズしたいテーマの functions.php に以下を追加:
class My_Walker_Category extends Walker_Category { function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ) { parent::start_el( $output, $category, $depth, $args, $id ); if ( is_tax() && $category->parent ) { if ( $category->term_id == get_queried_object_id() ) { $posts = get_posts( array( 'nopaging' => true, 'tax_query' => array( array( 'taxonomy' => get_query_var( 'taxonomy' ), 'terms' => $category->term_id, ), ), ) ); if ( ! empty( $posts ) ) { $output .= '<ul>'; foreach ( $posts as $post ) { $output .= sprintf( '<li><a href="%1$s">%2$s</a></li>', get_permalink( $post ), get_the_title( $post ) ); } $output .= '</ul>'; } } } } }
カテゴリーページのサイドバーを表示したいところで下記:
$walker = new My_Walker_Category; echo $walker->walk( get_terms( 'category', 'get=all' ) ), 0, array( 'current_category' => get_queried_object_id(), 'style' => 'list', 'use_desc_for_title' => false, ) );
フォーラム: 使い方全般
返信が含まれるトピック: アイキャッチ及び投稿内容が連続してしまうforeach ( $latest_events as $post ) : setup_postdata( $post );
でイケるはず。
setup_postdata() には(グローバル変数の)$postを渡さないと、ループ内で使える関数(get_the_post_thumbnail等)が正しく機能しない罠。フォーラム: 使い方全般
返信が含まれるトピック: ダッシュボードにアクセスすると投稿一覧へリダイレクトさせたいフォーラム: 使い方全般
返信が含まれるトピック: ダッシュボードにアクセスすると投稿一覧へリダイレクトさせたいadd_action( 'admin_init', 'my_admin_init' ); function my_admin_init() { if ( '/wp-admin/index.php' == $_SERVER['SCRIPT_NAME'] ) { wp_redirect( admin_url( 'edit.php' ) ); } }
フォーラム: 使い方全般
返信が含まれるトピック: 作成者別アーカイブページを削除したいテーマの functions.php(で
<?php 〜 ?>
の範囲内)に下記を追記して、
add_filter( 'author_rewrite_rules' , '__return_empty_array' );
WP 管理画面[設定|パーマリンク設定]を開いて[変更を保存]をクリックすると
作成者表示 は存在しなくなります。フォーラム: 使い方全般
返信が含まれるトピック: カテゴリーの並びを変更したいCategory Order なら
wp_dropdown_categories("child_of=$parent_id&echo=0&orderby=count")
かしら(未検証)。