フォーラムへの返信

15件の返信を表示中 - 1 - 15件目 (全910件中)
  • フォーラム: 使い方全般
    返信が含まれるトピック: 投稿記事内の指定文章にタグ付けをする
    $title = get_the_title( $post );

    とか?

    フォーラム: 使い方全般
    返信が含まれるトピック: 投稿記事内の指定文章にタグ付けをする

    記事に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()
    );

    ※例外処理は省略しています。

    例)

    1. 階層ありの投稿タイプ「乗り物記事」を作成する。
    2. 「乗り物カテゴリー」タクソノミーを作成して「自動車」「オートバイ」タームを追加する。
    3. 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等)が正しく機能しない罠。

    #解決済みにレスして申し訳念の為
    マルチサイトでもindex.phpあってもなくてもmy_admin_init()の内容でイケますお。

    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")
    かしら(未検証)。

15件の返信を表示中 - 1 - 15件目 (全910件中)