web-dev-qa-db-ja.com

<! - more - >タグの動作を変更する

私のウェブサイトの投稿の一番下にある「もっと読む」をクリックすると、同じページと同じセクションにある残りのテキストが読み込まれるだけで、要素がテキストであふれ、レイアウトが損なわれます。ツールバーから[もっと読む]を追加すると、すべてのWordpress投稿の最後にタグがあることに気付きました。ユーザーが投稿のために[続きを読む...]をクリックしたときに新しいページが開かれるように、このタグのデフォルトの動作をオーバーライドする方法を教えてください。
更新:
moreリンクをカスタマイズするために次のコードを使用しました。ただし、クリックすると同じページの新しいインスタンスが開き、すべての投稿のラップが解除されます(すべての投稿のリンクがドロップされ、すべてのコンテンツが表示されるため、私のページは見苦しくなります)。
欲しいのは、要求された投稿の全文が表示されている、まったく新しい空白のページ(私のテーマに影響されることなく)です。

<?php

            add_filter( 'the_content_more_link', 'modify_read_more_link' );
            function modify_read_more_link() {
            return '<a class="more-link" target="_blank" href="' . get_permalink() . '">ادامه...</a>';
            }
            ?>
            <?php
            $cat_id=get_cat_ID('تازه ترین اخبار');
                $posts = get_posts ("cat=$cat_id&posts_per_page=1");
                if ($posts) 
            {
            foreach ($posts as $post):
                setup_postdata($post); ?>
                <h2><?php the_title(); ?></h2>
                <?php the_content();?>
                <?php endforeach;
            }
                ?>

更新

Following the comments, I created a single.php with the following code:<br/>
<?php

get_header(); ?>

    <div id="primary" class="content-area">
        <div id="content" class="site-content" role="main">
            <?php
                // Start the Loop.
                while ( have_posts() ) : the_post();


                    get_template_part( 'content', get_post_format() );



                    if ( comments_open() || get_comments_number() ) {
                        comments_template();
                    }
                endwhile;
            ?>
        </div><!-- #content -->
    </div><!-- #primary -->

<?php


get_footer();
?>

ただし、メインページで[続きを読む]をクリックすると、コメント送信フォームと共に、自分のサイトのヘッダーのみが新しいページに表示されます。そのため、投稿自体は表示されません。私はWordpressが私のために残りをするだろう準備ができたテーマの内容を単にコピーして貼り付けることができるどこかで読んだ。エラーが発生したため、いくつかの部分をトリミングし、上記のコードを上記の結果と一緒に使用しています。
single.phpに自分の恣意的なデザインで各投稿を完全に表示させるには、何を追加または変更する必要があるのか​​を誰かが知っていますか?前もって感謝します enter image description here

1
codezombie

これはあなたのテーマの設定方法に問題があるように思えます。なぜならあなたが説明するものはmoreタグの通常の振る舞いではないからです。投稿の最初の部分では、テーマにJavascriptが組み込まれているため、1つの投稿ページに移動するのではなく、投稿のテキストを拡張して、カスタムフィルタを使用せずにJSで解決できるようにします。

私はまたあなたのテーマが実際にsingle.phpテンプレートを含んでいることを再確認したいでしょう、あなたの投稿の後半部分は多分そうではないでしょうが、これもテーマのJSによって引き起こされたのかもしれません。

1
Shellbot

このstackoverflow 投稿 は私を助けました。私は私のために働いていた次のコードで単一のPHPを追加しました:

<?php

get_header(); ?>

    <div id="primary" class="content-area">
        <div id="content" class="site-content" role="main">         
        <?php while ( have_posts() ) : the_post(); ?>
        <h3><?php the_category('&nbsp;&rsaquo;&nbsp;'); echo "&nbsp;&rsaquo;&nbsp;"; the_title(); ?></h3>
        <?php the_content(); ?>
        <?php endwhile; // end of the loop. ?>
        </div><!-- #content -->
    </div><!-- #primary -->

<?php


get_footer();
?>

とにかく答えてくれてありがとう。

0
codezombie

抜粋フィールドを空白のままにしている可能性があります。テキスト(通常は各投稿の概要)が表示されている場合は、本文全体ではなくページに表示されます。試してみてください。

デフォルトのカスタマイズについてもっと知るためには、もっとリンクチェック を読んでください

0
Hakkim