2011-01-07 8 views
0

私のショートコードが機能しない理由を理解しようとしています - 誰でも(なぜなら、このタイプのショートコードを適切に表示することはできません)Wordpress:ショートカットのテンプレートタグと関数を使用

何らかの理由でコードが私のショートコードを超えています。あなたがショートコード内の変数に戻すために、関数の始めにget_のようなものを使う必要があると思うので、ショートカットでのテンプレートタグ/ WP関数の使い方を完全に理解していません。誰も助けることができますか?私が正しくあなたを理解していれば

OSU

/* News from Blog category only - category 3 */ 

add_shortcode('latestblogposts', 'osu_latestblogposts'); 

function osu_latestblogposts() { 
    $start = '<div class="widget widget_osu_blog">'; 
    $start .= '<a title="Subscribe to our RSS feed" href="/feed?cat=3" class="rss"><img alt="RSS" src="' . get_bloginfo('template_directory') . '/images/ico-rss-big.png"></a>'; 
    $start .= '<div>'; 

    $my_query = new WP_Query('category=3&showposts=3'); 
    while ($my_query->have_posts()) : $my_query->the_post(); 
     $inner = '<div class="item"><a href="' . get_permalink() . '" title="'; 
     $inner .= printf(esc_attr__('Permalink to %s', 'inspire'), the_title_attribute('echo=0')); 
     $inner .= '" rel="bookmark" class="title">' . the_title() . '</a>'; 
     $inner .= '<p class="post-meta">'; 
     $inner .= '<span class="small">by</span> <span class="post-author"><a title="Posts by '; 
     $inner .= the_author(); 
     $inner .= '" href="' . the_author_posts_link() . '">' . the_author() . '</a></span>'; 
     $inner .= '<span class="small">on</span> <span class="post-date">'; 
     $inner .= get_the_date('d/m/Y') . '</span></p>'; 
     $inner .= the_excerpt() . '</div> <!-- End div.item -->'; 
    endwhile; 

    $end = '</div>'; 
    $end .= '</div> <!-- End div.widget_osu_blog -->'; 

    $latestblogposts = $start . $inner . $end; 
    return $latestblogposts; 
} 

答えて

0

おかげで、あなたの代わりにそれを直接エコーの戻り値を得るために、オプションの引数で関数を呼び出す必要があります。たとえば、the_title()では3つのオプションの引数があり、3つ目は出力を設定します(デフォルトはtrue)。 the_title().

その他の値については、呼び出した機能を変更する必要があります。 the_author()は常に値を表示(エコー)し、代わりにget_the_author()を呼び出す必要があります。

+0

また、get_the_excerpt()に対して "the_excerpt()"を変更する必要があります。 – AJJ

+0

こんにちはAJweb、私に戻ってくれてありがとう - あなたは頭の爪を打つ。これらの事のほとんどの前にget_を使うのは簡単なのでしょうか?私は、これらの各機能のコーデックスが利用可能かどうかを確認する必要があると思います。私は、ショートコードにもループを入れるためのきれいな方法があると確信しています! – Osu

+0

そうです、コーデックスの関数をチェックする必要があるのではないかと心配していますが、関数名にget_を追加するだけではありません(the_title()が例です)。 – AJJ

関連する問題