サポート » 使い方全般 » 投稿者を表示させたい

  • 解決済 rasuta2

    (@rasuta2)


    投稿者を非表示にする情報はたくさんHITするのですが、逆に表示させる場合の情報は少なく、上手くいかなかったので、こちらに書かせていただきました。

    テーマ:Twenty Seventeenバージョン: 1.3

    こちらで、「投稿」した記事に対して、投稿者を表示させたいです。現在は年月日しか表示されておりません。

    ご存知の方がおりましたら、お教えいただけると助かります。

12件の返信を表示中 - 1 - 12件目 (全12件中)
  • CG

    (@du-bist-der-lenz)

    テーマ:Twenty Seventeenバージョン: 1.3
    投稿ページでは日付の右に投稿者名も表示されますが、アーカイヴテンプレートで表示させたいということでしょうか。
    「上手くいかなかった」具体的な経緯を説明下さい。

    CG

    (@du-bist-der-lenz)

    前にも同じ箇所を見たように記憶しています。『個別投稿』で分岐されてますね。

    <?php
    		if ( 'post' === get_post_type() ) {
    			echo '<div class="entry-meta">';
    				if ( is_single() ) {
    					twentyseventeen_posted_on();
    				} else {
    					echo twentyseventeen_time_link();
    					twentyseventeen_edit_link();
    				};
    			echo '</div><!-- .entry-meta -->';
    		};
    トピック投稿者 rasuta2

    (@rasuta2)

    説明不足ですみません。
    “上手くいかなかった”というのは、非表示についての説明ページを見ながら、cssファイルをいくつか見たのですが、書き換えの方法も分からず、投稿者を表示させることが上手くいかなかったという意味です。

    個別ページ、アーカイブページ、カテゴリーページ、いずれも投稿者が表示されておりません。

    固定ページは出さなくて良いのですが、投稿については、誰が投稿したか分かるようにしたく、投稿は一律出るように出来たらと思っていますので、可能なのであれば教えていただけると助かります。

    CG

    (@du-bist-der-lenz)

    引用の通り、『個別投稿』で投稿者twentyseventeen_posted_on();を取得する仕組みになっているので、cssファイルは関係しません。
    アーカイブページ、カテゴリーページでは、投稿者名は表示されませんが、個別投稿では表示されます。
    当然、固定ページでは表示されません。勿論プラグインは全停止していますね。

    トピック投稿者 rasuta2

    (@rasuta2)

    プラグインを全て停止してみましたが、表示はされません。
    こちらはCSSファイルの一部という訳ではなかったのですね。すみません。

    他人からの引き継ぎなので、もしかするとデフォルト設定ではない可能性がありますが、現状は個別投稿でも表示がされておりません。

    アーカイブページ、カテゴリーページ、個別投稿で表示するには、該当するそれぞれのCSSの一部を書き換えもしくは追記するか、テーマの追加CSSに追記すれば良いのかと思ったのですが、全然的外れでしょうか?

    CG

    (@du-bist-der-lenz)

    「他人からの引き継ぎなので、もしかするとデフォルト設定ではない可能性がありますが、」ということ、現在の Twenty Seventeen がカスタマイズされていると考えられますね。チャイルドテーマでセットされていませんか。

    トピック投稿者 rasuta2

    (@rasuta2)

    元々作った方に確認したところ、チャイルドテーマは作っておらず、デフォルトから設定を変えていないということでした。

    別のドメインのホームページのテーマを、Twenty Seventeenに変更したところ、そちらでも投稿者が表示されておりませんでした。CGさんは表示されているとのことで、何が違うのか分からない状況です。

    cssファイルが関係しないとすると、私の知識では難しいかもしれないですが、強制的に表示させるような方法はないものでしょうか?

    yumeikumi

    (@yumeikumi11)

    横から失礼します。CGさんのご指摘の通り、個別投稿では日付、投稿者が表示されますが、サイトで最初に表示される記事一覧だと日付だけですね。
    おそらくrasuta2さんのおっしゃっているのは、このフロントページの表示なのだと思います。カスタマイズでフロントページを「投稿」にしているのですよね。

    ご要望に添える変更か分かりませんが、以下のように php ファイルを書き換えることで表示するようになります。必ずチャイルドテーマを作って、そちらを修正して下さい。対象となるファイルは一つだけで

    /wp-content/themes/twentyseventeen/template-parts/post/content.php

    です。CGさんが上で書かれている部分があるファイルです。上から24行目あたりのこの部分を

    
     echo '<div class="entry-meta">';
    // if ( is_single() ) {
      twentyseventeen_posted_on();
    // } else {
    // echo twentyseventeen_time_link();
    // twentyseventeen_edit_link();
    // };
     echo '</div><!-- .entry-meta -->';
    

    こんな感じに該当する行頭にスラッシュを二つ入れてコメントアウトしてしまうだけです。twentyseventeen_posted_on() が常に呼ばれるようになる変更です。
    元は記事一覧では twentyseventeen_time_link() と twentyseventeen_edit_link() だけを呼んで個別投稿の時は twentyseventeen_posted_on() を呼ぶ仕組みでした。

    表示がうまく変更されたのを確認したら、コメントアウトした行そのものを削除してもいいですが、後で元にもどす、別の修正を加える時に大変なので、コメントアウトのままが良いかと思います。

    チャイルドテーマを作らずにいじる場合には、
    ホーム画面(is_home())に合致したときのみ、投稿者名を追加するように、テーマの functions.php に twentyseventeen_time_link 関数を上書き設定するという手はどうかなと思います。つまり、個別投稿以外だと、twentyseventeen_posted_on ではなく、twentyseventeen_time_link が呼ばれます。従って、twentyseventeen_time_link 関数自体を変更しちゃえってことです。ちょうど、
    /wp-content/themes/twentyseventeen/inc/template-tags.php
    には、

    if ( ! function_exists( 'twentyseventeen_time_link' ) ) :
    /**
     * Gets a nicely formatted string for the published date.
     */
    function twentyseventeen_time_link() {
    

    と書かれており、twentyseventeen_time_linkを上書き可能のためです。
    たとえば、下記のような感じにすれば表示されるかなと思います。
    まぁ子テーマにするのが素直だと思います。

    function twentyseventeen_time_link() {
    	$time_string = '<time class="entry-date published updated" datetime="%1$s">%2$s</time>';
    	if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) {
    		$time_string = '<time class="entry-date published" datetime="%1$s">%2$s</time><time class="updated" datetime="%3$s">%4$s</time>';
    	}
    
    	$time_string = sprintf( $time_string,
    		get_the_date( DATE_W3C ),
    		get_the_date(),
    		get_the_modified_date( DATE_W3C ),
    		get_the_modified_date()
    	);
    
    	if( is_home() ){
    	// Get the author name; wrap it in a link.
    		$byline = sprintf(
    			/* translators: %s: post author */
    			__( 'by %s', 'twentyseventeen' ),
    			'<span class="author vcard"><a class="url fn n" href="' . esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ) . '">' . get_the_author() . '</a></span>'
    		);
    		return sprintf(
    			/* translators: %s: post date */
    			__( '<span class="screen-reader-text">Posted on</span> %s', 'twentyseventeen' ),
    			'<a href="' . esc_url( get_permalink() ) . '" rel="bookmark">' . $time_string . '</a>' . ' ' . $byline
    		);		
    	}else{
    	// Wrap the time string in a link, and preface it with 'Posted on'.
    		return sprintf(
    			/* translators: %s: post date */
    			__( '<span class="screen-reader-text">Posted on</span> %s', 'twentyseventeen' ),
    			'<a href="' . esc_url( get_permalink() ) . '" rel="bookmark">' . $time_string . '</a>'
    		);
    	}
    }
    トピック投稿者 rasuta2

    (@rasuta2)

    yumeikumiさま
    kimipoohさま

    ご回答いただきましてありがとうございます。
    私の環境ですと、個別記事で投稿者が表示されていないため、標準とは動作が異なる可能性がございます。

    チャイルドテーマを作ったことがなかったため、直接編集の方が良いかと、まずはkimipoohさまにお教えいただいたtemplate-tags.phpの編集を試しましたが、こちらは投稿者が表示されませんでした。

    次にyumeikumiさまにお教えいただいたチャイルドテーマを作ってからcontent.phpを編集する方法を試させていただきました。方法は、wp-content/themes/twentyseventeen-child配下に下記を設置して、content.phpを編集しました。
    style.css
    functions.php
    template-parts/post/content.php

    編集リンクはそのまま残したかったので、twentyseventeen_edit_link();の行はコメントアウトしておりませんが、こちらで投稿者は表示されるようになりました。本当にありがとうございます。感謝致します。

    私がお示ししたのは、
    functions.php にコードを追加するのみです。 template-tags.php の中身の編集はしません。

    ただこれでフロントページの投稿一覧の日付の後ろに投稿名がでない場合にはテーマのコードがカスタマイズされていることになるので、その場合には第三者にはわからないことになりますね。

    トピック投稿者 rasuta2

    (@rasuta2)

    kimipoohさま

    お世話になっております。記載が間違っておりました。作業に使ったローカルファイルを見ると、functions.phpもありましたが、私が勘違いをして、template-tags.phpを編集してしまった可能性があります。申し訳ございません。

    今のところ、子テーマを作る方法で投稿者が表示されておりますので、ひとまずは大丈夫ですが、また何かあれば参考にさせていただきます。ありがとうございます。

12件の返信を表示中 - 1 - 12件目 (全12件中)
  • トピック「投稿者を表示させたい」には新たに返信することはできません。