我有以下代码
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中的第二个函数<?php the_excerpt_slider(); ?>
我收到错误:
Fatal error: Call to undefined function the_excerpt_slider() in
我触发的第一个与
配合得很好<?php the_excerpt(); ?>
请帮帮我。
答案 0 :(得分:2)
在add_action文档中,它说明了
add_action( $hook, $function_to_add, $priority, $accepted_args );
$ hook:$ function_to_add被挂钩的动作的名称。 (有关操作挂钩列表,请参阅插件API /操作参考)。也可以是主题或插件文件中的操作名称,或特殊标记&#34; all&#34;,在这种情况下,将为所有挂钩调用该函数)
http://codex.wordpress.org/Function_Reference/add_action
所以或者你要么声明一个由wordpress core提供的动作钩子(参见这里的列表:http://codex.wordpress.org/Plugin_API/Action_Reference),或者你可以提供你的动作但是这个动作,在你的情况下是the_excerpt_slider();,必须是在function.php文件中的某处声明。所以,你得到这个错误。 the_excerpt();工作正常,因为它是wordpress的核心功能。
<强>更新强>
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)
&#39;滑块&#39;是您的自定义帖子的名称。您必须将其更改为您定义的名称。如果您转到管理面板并转到显示所有滑块的位置,您就可以找到它。在网址中你应该看到类似的内容:
http://yoururl/wp-admin/edit.php?post_type=slider
因此,您的自定义帖子的名称位于?post_type=
同样在您的文件中,您应该将<?php the_excerpt_slider(); ?>
更改为<?php the_excerpt(); ?>
答案 1 :(得分: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');