0

私のウェブサイトの投稿ヒーローに著者情報を追加するのに少し問題があるため、この質問を投稿しています。

私はWordpressでGenesisフレームワークを使用しているので、投稿から投稿情報を削除し、投稿ヒーローに追加し直しました。投稿ループでまだフェッチされていないため、著者名が表示されなくなったことを除いて、すべて機能します。

    // Remove entry title
    remove_action( 'genesis_entry_header', 'genesis_do_post_title' );
    // Remove post info
    remove_action( 'genesis_entry_header', 'genesis_post_info', 12 );
    // Add page title
    add_action( 'hero-info', 'genesis_do_post_title' );
    // Add page info
    add_action( 'hero-info', 'genesis_post_info', 12 );

投稿者情報を投稿ヒーローに追加できるようにするために、私はstackoverflowを調べて、ショートコードを作成してhero-infoで実行することでOPが修正できるリンクを見つけました

function author_shortcode() {
    global $post;
    $author_id=$post->post_author;
    the_author_meta( 'display_name', $author_id );
}
add_shortcode('author', 'author_shortcode');

次に、このショートコード [作成者] が追加されます

add_filter( 'genesis_post_info', 'custom_post_info' );
function custom_post_info( $post_info ) {
    if ( is_archive() || is_home() ) {
        $post_info = __( 'Article by [author] [post_author_posts_link] on [post_date] - [post_comments zero="Leave a Comment" one="1 Comment" more="% Comments" hide_if_off="disabled"]', 'tcguy' );
        return $post_info;
    }
}

これが現在の結果です: http://imgur.com/a/6lX5J 何らかの理由で間違った場所に表示されます。誰でもこれがどのようになるか知っていますか?

このサイトは次の場所にあります: http://websforlocals.com/business/

十分な情報を提供して、同じ問題を抱えている人が助けられることを願っています.

4

1 に答える 1

0

これは、PHPコードを登録するShortCodeの問題です。

ショートコードを追加するときは、何もエコーしないでください。この方法では、必要な場所ではなく、投稿コンテンツの上部にエコーされます。

したがって、常にショートコード関数で出力を返し、ショートコード関数をエコーし​​ます。

現在、WordPress には、結果をエコーし​​、結果を返す関数、つまりthe_author_metavs get_the_author_meta(最初に使用している関数は結果を表示/エコーしますが、get_ 関数は値を返します) の規則があります。

ショートコード登録ブロックget_the_author_metaの代わり に使用する必要があり、表示場所の問題を解決します.the_author_meta

function author_shortcode() {
global $post;
$author_id=$post->post_author;
return get_the_author_meta( 'display_name', $author_id );
}
add_shortcode('author', 'author_shortcode');
于 2016-11-08T17:20:05.580 に答える