フォーラムへの返信

15件の返信を表示中 - 31 - 45件目 (全109件中)
  • LABE

    (@latobeam)

    あっています。
    the_title() がループ中のある記事のタイトルを出力するように、 get_the_ID() はその記事のIDを返します。
    if-else 文を理解しきれていないのでしたら、WordPressのカスタマイズにはPHP言語の基本的な理解が不可欠ですので、今一度ご勉強されるべきかと思います。

    フォーラム: 使い方全般
    返信が含まれるトピック: 記事ごとに枠で囲むときのdivタグは?
    LABE

    (@latobeam)

    その <div> タグに class を付ければいいと思います。
    投稿ごとに、それぞれの情報を含んだクラスを付ける関数 post_class() もあります。

    LABE

    (@latobeam)

    ループ内では get_the_ID() で投稿のIDが取得できますので、これと記事AのIDを比較するif文で分岐できます。

    <?php if ( xxx == get_the_ID() ) { // 記事Aの場合 ?>
    タイトル
    <?php } else { // それ以外の場合 ?>
    <a href="....">タイトル</a>
    <?php } ?>

    こんな感じで、あとは適宜補ってください。

    フォーラム: 使い方全般
    返信が含まれるトピック: 新着記事一覧を条件付きで表示したい
    LABE

    (@latobeam)

    pre_get_posts アクションを使い、 $wp_query->set( 'offset', 4 ) でしょうね。
    新着記事一覧とのことですが、どこのアーカイブかによって書き方が多少変わってくるので、教えていただきたいです。

    @msio さん
    have_posts() はループが終了しているかどうかを判別するだけですね。
    the_poat() はループを進め、グローバル変数 $post をセットし直します。

    LABE

    (@latobeam)

    そもそも get_posts() 版では配列の書き方が根本的に間違っていますね。

    $args = array( 
        'category' => 2,
        'post_type' => 'post',
        'posts_per_page' => -1,
    );
    • 配列の要素はコンマ , 区切りです。
    • 上の例では一行に一つずつ要素を書いていますが、改行しなくても構いません。
    • => の左側が要素のキー、右側が要素の値です。
    • また、配列は array( から書き始め、 ) で終わります。※別の書き方もあります

    その上で、気になった点をいくつか。

    • get_posts() 版がエラーになった原因は上記のものでしょう。真っ白のエラー画面といっても、おそらく「Syntax Error」などと行番号付きのメッセージが出ていると思われます。それでエラーの原因は特定できます。
    • get_posts() 版での引数 category ですが、こちらは現在非推奨です。代わりに cat をお使いください。
    • get_posts() 版と WP_Query 版で引数が異なっていますね。どちらがあなたの意図するものなのか俺にはわかりかねますが、前者は新しい順に全件表示、後者は4件表示ですね。 get_posts()WP_Query では、引数 $args の形式はほぼ同じになっているので、何行かのコードの書き換えで相互に置き換えられるようになっています。
    • WP_Query 版では get_template_part() が使われていますが、このテンプレートファイルの中身がわからないので厳密なアドバイスはできません。
    • WP_Query 版で $wp_query という変数が使われていますが、これはグローバル変数であり、書き換えるべきではありません。 $my_query という変数をこれの代わりに使ってみましょう。3行目から9行目までを下記の「コード1」のように書き換えてみてください。
    • WP_Query 版の wp_reset_postdata();endwhile;endif; の間に書くのが適切です。

    コード1

        $args = array(
            'post_type' => 'post',
            'category_name' => 'lesson',
            'posts_per_page'=> 4,
        );
        $my_posts = new WP_Query( $args );
    フォーラム: 使い方全般
    返信が含まれるトピック: 月別アーカイブなのに全件表示される
    LABE

    (@latobeam)

    本題からは逸れますが、 archive.php なのに WP_Query をお使いですか?
    posts_per_page で表示件数を変更しているだけと見受けられますが、その場合 pre_get_posts アクションを使う方法がより効率的で一般的です。
    これは functions.php に書きます。

    function my_pre_get_posts( $query ) {
        if ( is_admin() || ! $query->is_main_query() )
            return;
        if ( ! $query->is_home() || ! $query->is_search() )
            $query->set( 'posts_per_page', 10 );
    }
    add_action( 'pre_get_posts', 'my_pre_get_posts' );

    ループのほうは3ヶ所の $the_query-> を抜けばOKです。

    また、この場合 paginate_links() のほうも書き換える必要があります。
    といっても WP_Query を使わなくなったので $the_query をグローバル変数の $wp_query に書き換えるというだけです。

    global $wp_query;
    if ( $wp_query->max_num_pages > 1 ) {
        echo paginate_links(array(
            'base' => get_pagenum_link(1) . '%_%',
            'format' => '/page/%#%/',
            'current' => max(1, $paged),
            'total' => $wp_query->max_num_pages,
        ));
    }

    それと wp_reset_postdata(); も不要になります。
    ただ仮に WP_Query を使う場合、 wp_reset_postdata(); の正しい位置は endwhile;endif; の間ですね。

    LABE

    (@latobeam)

    ご質問のような状況の場合、別のアプローチで実現したほうが、最終的には管理が容易になるような気がします。
    すなわち、「店舗A/店舗B」と「レディースファッション」配下のカテゴリは別次元の分類となるため、WordPressにおいても別次元の分類を使って管理するほうがいいと思います。

    よくある方法としては、カスタムタクソノミー「店舗」を作り、配下にターム「店舗A」「店舗B」を作成、カスタムタクソノミー「レディースファッション」を作り、配下に「トップス」「ボトムス」……を作成、そして記事には「店舗」配下のタームと「レディースファッション」配下のタームをそれぞれ一つずつ設定する、というような方法があります。
    そして、記事一覧は「店舗」の分類で取得し、記事部分には「レディースファッション」の分類を表示するのです。
    カスタムタクソノミーを使わなくても、「店舗A」「店舗B」をカテゴリとし、「トップス」「ボトムス」……をタグとすれば、似たようなことが可能です。

    ご質問のような状況が起こるのは、推測ですが、お使いのテーマでは記事一覧において、記事が複数のカテゴリに属する場合、どのカテゴリを表示させるかを選べない、というのが原因ではないでしょうか。
    これを選べるようにする方法はありますが、複雑な方法という感じは否めません。
    それよりも、「レディースファッション」の分類を確実に表示させるなら、「店舗」とは別の分類を使ってしまおう、というアプローチです。

    フォーラム: 使い方全般
    返信が含まれるトピック: jetpack以外のプラグインについて
    LABE

    (@latobeam)

    Contact Form 7 をインストールすると管理ページのメニューに追加されるプラグインの設定で、新規フォームを作成します。
    すると作ったフォームのショートコードが発行されるので、それを任意のページに記述することになります。
    一度お試しになったほうがよくわかると思います。

    LABE

    (@latobeam)

    WP_Query の記述は正しいように見えます。
    ですから、どのテーマファイルにお書きになったのかを知りたいのですが。
    できればループ内の記述も知りたいです。

    フォーラム: 使い方全般
    返信が含まれるトピック: faviconをページごとに変えたい
    LABE

    (@latobeam)

    faviconは通常、テーマの header.php ファイルに <link> タグで設定しますが、すなわち header.php において使えるあらゆる処理によって条件分岐させることで、ページごとに任意のfaviconを設定することができます。
    例えばカテゴリとか、スラッグとか、カスタムフィールドとか……

    フォーラム: 使い方全般
    返信が含まれるトピック: jetpack以外のプラグインについて
    LABE

    (@latobeam)

    @pressinfo777 さん
    はい、その通りです。
    逆に、ショートコードをいずれかの投稿の本文に記述しなければ、フォームはどこにも表示されません。
    「お問い合わせ」といったページを作成する場合は専用のページを作り、そこにショートコードを記述することになります。
    フォームは複数種類作成することもでき、また同一のフォームを複数のページに設置することもできます。

    LABE

    (@latobeam)

    @ioxrxogi さん
    order は大文字に直して ASC になる場合は ASC 、それ以外の場合は DESC として扱われます。

    https://developer.wordpress.org/reference/classes/wp_query/parse_order/

    フォーラム: 使い方全般
    返信が含まれるトピック: jetpack以外のプラグインについて
    LABE

    (@latobeam)

    「Contact Form 7」は、本文にショートコードを記述することで任意の投稿にフォームを設置することが可能です。

    LABE

    (@latobeam)

    どのテーマファイルをお使いですか?

    フォーラム: 使い方全般
    返信が含まれるトピック: 記事の表示
    LABE

    (@latobeam)

    一覧ページのURLが http://sample.co.jp/category/blog/page とのことですが、スラッグが「page」のカテゴリをお使いということでしょうか。
    それとも固定ページでしょうか。

15件の返信を表示中 - 31 - 45件目 (全109件中)