質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.38%

  • WordPress

    9384questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

WordPress「Sticky Posts」がカスタム投稿で表示されない

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 472

nakasea

score 2

WordPress「先頭に固定表示」の機能をカスタム投稿内で使用するため、
プラグインの「Stick post」を使用しています。
投稿画面内にはチェックボックスが表示されたのですが、アーカイブページで反映がされません。

確認したところ、get_postsの使用に問題があると思われたため、下記のURLを参考に以下のように修正しました。
http://hosting.talisnet.info/wp-sticky-posts-error/

先頭表示自体はできたのですが、次のような問題が発生します。

  • 先頭表示させたい記事のアイキャッチが表示されない
  • すべてのリンクが先頭表示させたい記事のURLになる

使用テーマ:TCD GENSEN
目的:有料掲載記事を優先表示させたい

どのように解消すればよいか、ご教授いただけますと幸いです。
または似たようなプラグイン等代替案などでも構いません。
よろしくお願いいたします。

<?php 
    $args = array(
      'post_type' => 'introduce',
      'tax_query' => array(
        array(
          'taxonomy' => 'category6',
          'field'    => 'slug',
        ),
      ),
    );
    $the_query = new WP_Query( $args );
?>
    <?php if ( $the_query->have_posts() ) : ?>

 <div id="introduce_list">
  <div class="introduce_list_row clearfix">
<?php
        $i = 0;
        $row = 0;
        while ( $the_query->have_posts() ) :
            $the_query->the_post();

            if ($i > 0 && $i % 3 == 0) {
                $row++;
?>
  </div>
  <div class="introduce_list_row clearfix">
<?php
            }

            $col_class = '';
            if ($row % 2 == 0) {
                if ($i % 3 == 0) {
                    $col_class = ' show_info';
                }
            } else {
                if ($i % 3 == 2) {
                    $col_class = ' show_info';
                }
            }
?>
   <div class="introduce_list_col article inview-fadein<?php echo esc_attr($col_class); ?>">
    <a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>" class="clearfix">
     <div class="image">
      <?php if (has_post_thumbnail()) { the_post_thumbnail('size3'); } else { ?><img src="<?php echo get_template_directory_uri(); ?>/img/common/no_image3.gif" title="" alt="" /><?php } ?>
     </div>
     <div class="info">
      <?php
        if ($dp_options['show_introduce_categories']) {
          $metas = array();
          foreach(explode('-', $dp_options['show_introduce_categories']) as $cat) {
            if (!empty($dp_options['use_introduce_category'.$cat])) {
              $terms = get_the_terms($post->ID, $dp_options['introduce_category'.$cat.'_slug']);
              if ($terms && !is_wp_error($terms)) {
                $term = array_shift($terms);
                $metas[] = '<li class="cat"><span class="cat-'.esc_attr($dp_options['introduce_category'.$cat.'_slug']).'" data-href="'.get_term_link($term).'" title="'.esc_attr($term->name).'">'.esc_html($term->name).'</span></li>';
              }
            }
          }
          if ($metas) {
            echo '<ul class="meta clearfix">'.implode('', $metas).'</ul>';
          }
        }
      ?>
      <h3 class="title"><?php trim_title(32); ?></h3>
      <p class="excerpt"><?php new_excerpt(148); ?></p>
      <p class="more"><?php _e('Read more', 'tcd-w'); ?></p>
     </div>
    </a>
   </div>
<?php $i++; endwhile; ?>
<?php wp_reset_postdata(); ?>

  </div>
 </div>
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • stampdoor

    2018/04/12 08:07

    カスタムタクソノミーを絞りたいというのであれば $argsにその情報も渡さないといけませんね。WP_Queryは新たにループを作り出す関数です。アーカイブページだからと言ってそのカテゴリーを自動で取得はしません。カスタムタクソノミーの絞込は公式ページを確認しましょう。https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Query#.E3.82.BF.E3.82.AF.E3.82.BD.E3.83.8E.E3.83.9F.E3.83.BC.E3.81.AE.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF get_category()などして変数に渡し、$argsに追加すると良いと思います。

    キャンセル

  • nakasea

    2018/04/17 00:22 編集

    $argsにタクソノミーの情報を渡してみたのですが、今度は記事の取得ができなくなってしまいました。。何かおかしいでしょうか。。
    タームで絞り込めば記事の取得は出来たのですが、今回特定のタームで絞り込む用途ではありません。
    また、記事の取得は出来ましたが、やはりSticky postの先頭表示機能が機能していないようでした。

    修正版の記述内容に編集しましたので、ご確認頂けますと幸いです。

    キャンセル

  • stampdoor

    2018/04/18 09:20

    ちなみにこの記事の内容のような記事一覧に対応させるような処理はすでに入れていますか?https://www.webantena.net/wordpress/plugin-sticky-custom-post-types/

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.38%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • WordPress

    9384questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。