我正在使用advanced excerpt插件,因为它的选项有更多的灵活性。
虽然如果发现插件存在缺陷,我必须使用remove_all_filters('the_excerpt');
删除标准摘录功能,否则会与高级摘录选项冲突。
问题
我想在facebook的开放图元中添加除了我的头。通常我会用一个简单的get_the_excerpt();
来做这件事,并将其编织到元标记中,如此......
<meta property="og:description" content="<?php echo get_the_excerpt(); ?>" />
但这不起作用 - 因为我删除了摘录过滤器。
如何解决?
我在创建WP查询时尝试获取当前ID并创建一个迷你循环,我可以将高级专家调用放入。
但由于某种原因,这个循环打破了我的网站,我似乎无法修复。任何人都可以帮我修复这个循环。非常感谢谢谢。
<?php if ( is_single() || is_page() ) {
$postID = get_the_ID();
$fbexcerpt = new WP_Query(array( 'p' => $postID ));
while ($fbexcerpt->have_posts()) :
$fbexcerpt->the_post();
echo '<meta property="og:description" content="' . the_advanced_excerpt('length=120&use_words=0') . '" />';
unset($fbexcerpt);
endif; wp_reset_query();
} ?>
更新
如果有人有任何不需要'高级摘录'的替代想法 - 那么我通过我的functions.php插入开放的图形元素
function insert_fb_in_head() {
global $post;
if ( !is_singular())
return;
echo '<meta property="og:description" content=" . $MyExcerptHere . "/>';
echo "\n";
}
add_action( 'wp_head', 'insert_fb_in_head', 5 );
答案 0 :(得分:0)
为什么不简单地使用get_post?
$my_post = get_post($id);
$excerpt = $my_post->post_excerpt;
然后使用这样的函数来检索最多x个字符的单词:
function extractText150char($text, $length = '150') {
$textArr = explode(' ', $text);
$text = '';
// Loop through each word
for ( $i=0; $i<count($textArr)-1; $i++ ) {
$text .= $textArr[$i] . ' ';
// Check string length
if ( (strlen($text) + strlen($textArr[$i+1]) ) > $length )
return $text;
}
return $text;
}