web-dev-qa-db-ja.com

ホームページのカスタム抜粋長

私はこれがうまくいったと思いましたが、残念ながらそうではありません。静的ホームページの抜粋の長さを50にし、他のすべてのページの長さを20にする必要があります。これまでのところ、私のコードは次のとおりです。

function custom_excerpt_length( $length ) {
   if(is_front_page()) $content='excerpt';
   return 50;
}

add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

Seamlessthemes.comでは抜粋が50ですが、seamlessthemes.com/themesでは抜粋がまだ50であるため、動作していないと言えるでしょう。何らかの理由でこのテーマのデフォルトは20になっています。 20。

前もって感謝します!

4
Jagst3r15

フィルタの仕組み

フィルタは単純にpointになります。そこでは値を取ることができます。つまり、変更の余地がある(何かのために)コア内(例えばthe_excerpt()関数用)に設定されます。

そう...

$some_var = apply_filters( 'change_this_var', 50 );

...ただ言う:

"some var"が50に設定されていますが、フィルタコールバックをchange_this_varに追加すると、get、modify、およびの値を返すことができます。

エクササイズ

あなたの質問に基づいて、関数定義( "filter callback"関数の定義)のパラメータとしてgets変数を使用する例を示します。それからを修正し(ここでは条件付きタグを使用します)、itを返します。

add_filter( 'excerpt_length', 'wpse61271_custom_excerpt_length', PHP_INT_MAX -1 );
function wpse61271_custom_excerpt_length( $length ) 
{
    return ( 
       is_front_page()
       XOR is_home()
    )
       ? 50
       : $length;
}
7
kaiser