1

私は以下のコードを持っています

add_action('the_excerpt','limit_the_content'); 
function limit_the_content($content){
  $settings = get_option('mytheme_options'); 
  $word_limit = $settings['numberofwordsexcerpt']; 
  $words = explode(' ', $content); 
  return implode(' ', array_slice($words, 0, $word_limit)); 
}

add_action('the_excerpt_slider','limit_the_content_slider'); 
function limit_the_content_slider($content_slider){
  $settings = get_option('mytheme_options'); 
  $word_limit_slider = $settings['numberofwordsexcerptslider']; 
  $words_slider = explode(' ', $content_slider); 
  return implode(' ', array_slice($words_slider, 0, $word_limit_slider)); 
}

そして、index.phpで2番目の関数をトリガーしようとしています

<?php the_excerpt_slider(); ?>

エラーが表示されます:

Fatal error: Call to undefined function the_excerpt_slider() in

私がトリガーしている最初のものはうまく機能します

<?php the_excerpt(); ?>

私を助けてください。

4

2 に答える 2

2

add_action のドキュメントでは、

add_action( $hook, $function_to_add, $priority, $accepted_args );

$hook : $function_to_add がフックされるアクションの名前。(アクション フックのリストについては、プラグイン API/アクション リファレンスを参照してください)。テーマまたはプラグイン ファイル内のアクションの名前、または特別なタグ「all」にすることもできます。この場合、関数はすべてのフックに対して呼び出されます)

http://codex.wordpress.org/Function_Reference/add_action

または、wordpressコアから提供されるアクションフックを宣言するか(ここのリストを参照してください:http://codex.wordpress.org/Plugin_API/Action_Reference)、アクションを提供できますが、このアクションは、あなたの場合は the_excerpt_slider() ;、function.php ファイルのどこかで宣言する必要があります。そのため、このエラーが発生します。the_excerpt(); ワードプレスのコア機能であるため、正常に動作しています。

アップデート

add_action('the_excerpt','limit_the_content'); 
function limit_the_content($content){
  global $post;
  if('slider' == get_post_type($post->ID)){
    $settings = get_option('mytheme_options'); 
    $word_limit_slider = $settings['numberofwordsexcerptslider']; 
    $words_slider = explode(' ', $content_slider); 
    return implode(' ', array_slice($words_slider, 0, $word_limit_slider)); 
  }else{
    $settings = get_option('mytheme_options'); 
    $word_limit = $settings['numberofwordsexcerpt']; 
    $words = explode(' ', $content); 
    return implode(' ', array_slice($words, 0, $word_limit));
  }
}

このコード行では:

'slider' == get_post_type($post->ID)

「スライダー」はカスタム投稿の名前です。定義した名前に変更する必要があります。管理パネルに移動して、すべてのスライダーが表示されている場所に移動すると、それを見つけることができます. URL には、次のようなものが表示されます。

http://yoururl/wp-admin/edit.php?post_type=slider

カスタム投稿の名前は?post_type=

また、ファイル内でをに変更する必要があり<?php the_excerpt_slider(); ?>ます<?php the_excerpt(); ?>

于 2013-11-09T13:01:15.010 に答える
1

私はそれを機能させることができました。ここにその方法があります。の代わりに宣言する必要がありましthe_excerptた。スライダー用に宣言し、the_content各関数の後にアクションを追加しました。それは前でした。

function limit_the_content_slider($content_slider){
  $settings = get_option('mytheme_options'); 
  $word_limit_slider = $settings['numberofwordsexcerptslider']; 
  $words_slider = explode(' ', $content_slider); 
  return implode(' ', array_slice($words_slider, 0, $word_limit_slider)); 
}
add_action('the_excerpt','limit_the_content_slider');

function limit_the_content($content){
  $settings = get_option('mytheme_options'); 
  $word_limit = $settings['numberofwordsexcerpt']; 
  $words = explode(' ', $content); 
  return implode(' ', array_slice($words, 0, $word_limit)); 
}
add_action('the_content','limit_the_content'); 
于 2013-11-09T15:31:45.990 に答える