【问题标题】:wordpress get excerpt by idwordpress 通过 id 获取摘录
【发布时间】:2012-07-07 09:47:43
【问题描述】:

我正在使用options framework

我不知道为什么这不起作用

$x = of_get_option('post_number');
$content_post = get_post($x);
echo $content_post->post_excerpt;

这很奇怪,因为

echo of_get_option('post_number');

完美运行并输出一个数字

根据get_post 我的代码应该可以工作 然而 echo 什么也没产生,甚至没有错误消息

所以我必须以某种方式错误地处理 get_post(),有什么线索吗?


编辑

var 转储http://pastebin.com/ZEgQ5WPn 显示 post_content 已满但 post_excerpt 为空

如何重新生成摘录?


编辑[已解决]

我决定手动覆盖摘录,但我的选项不见了,然后我找到了this

使用过

add_post_type_support( 'page', 'excerpt' );

手动编写摘录

【问题讨论】:

  • 您是否尝试过打印该对象?即:回声“
    ”; print_r($content_post);回声“
    ”;然后看看输出的是什么,很可能,帖子摘录是空的?
  • @Marty 它输出这个 - pastebin.com/ZEgQ5WPn

标签: wordpress


【解决方案1】:
$text = apply_filters('the_excerpt', get_post_field('post_excerpt', $post_id));

【讨论】:

  • 说真的,这太棒了。不知道它的存在。
  • 从 2014 年开始的高质量答案仍然是规则
【解决方案2】:

这将获取 post_content 并从中创建一个摘录。您可以将 post_content 替换为任何其他代码字符串。将 55 更改为另一个数字以增加返回的字数。

$excerpt = wp_trim_words ( strip_shortcodes( $recent["post_content"], 55 ) );

【讨论】:

  • 这个帖子已经 3 年了,我在很久以前就解决了这个问题,如编辑中所示,我会自己回答来关闭这个
  • 你喜欢,保存了mah loife。谢谢。
【解决方案3】:

你应该可以像这样使用get_post(),其中returns几乎所有的内置帖子属性都作为帖子对象的一部分。

<?php
  $my_id = 7;
  $my_post = get_post( $my_id ); 
  $my_excerpt = $my_post->post_excerpt;
  var_dump( $my_excerpt );
?> 

如果失败(它不应该,但也许你已经尝试过它的声音)也许结帐WP_Query 并传入"p=$my_id" 作为参数。无论如何,这很可能是 get_post 引擎盖下使用的函数。

<?php
  $my_id = 7;
  $my_posts = new WP_Query( "p=$my_id" ); 
  var_dump( $my_posts );
?> 

【讨论】:

  • 返回的第一个代码块:string(0) "" - 第二个代码块这样做了 pastebin.com/MDgRq2cq
  • 空白字符串(相对于 null)表明您的摘录是空白的。也许看看这个查询返回什么(手动):SELECT blueroom_posts.* FROM blueroom_posts WHERE 1=1 AND blueroom_posts.ID = 9 AND blueroom_posts.post_type = 'post' ORDER BY blueroom_posts.post_date DESC
  • 但是根据这个其他转储,它不是空的 pastebin.com/ZEgQ5WPn 这东西让我发疯了,一切看起来都应该工作,而且只有这么少的代码可以让情况变得更糟
  • 或者至少它显示内容已满,但摘录是空的,所以很奇怪
猜你喜欢
  • 2017-07-13
  • 2017-11-26
  • 1970-01-01
  • 1970-01-01
  • 2016-08-11
  • 1970-01-01
  • 2014-07-01
  • 2017-04-09
  • 1970-01-01
相关资源
最近更新 更多