尝试从 id 调用 post 标题、摘录和永久链接以获得简码
Trying to call post title, excerpt, and permalink from id for shorcode
我能够正确显示标题和摘录,但我无法确定要使用哪个固定链接调用。
function display_excerpt_shortcode( $atts ) {
extract(shortcode_atts(array(
'excerptid' => ''
), $atts));
if ($excerptid) {
$args=array(
'p' => $excerptid,
'post_type' => 'post',
'post_status' => 'publish'
);
$my_query = new WP_Query($args);
if ($my_query) {
$title = apply_filters( 'the_title', $my_query->posts[0]->post_title );
$excerpt = apply_filters( 'the_excerpt', $my_query->posts[0]->post_excerpt );
$link = apply_filters( 'the_permalink', $my_query->posts[0]->post_permalink );
return '<h3>' . $title . '</h3> <p>' . $excerpt . '</p> <a class="button small primary" href="' . $link . '" title="' . $title . '" >Read More </a>';
}
}
return;
}
add_shortcode('display_excerpt', 'display_excerpt_shortcode');
我试过各种组合。 the_permalink、get_permalink、post_permalink...我只是不知道这是错误的组合还是我完全不对。提前致谢。
你试过了吗:
$link = get_permalink( $my_query->posts[0]->post_ID )
我认为你的问题是查询对象没有'permalink'属性。
按照 codex's class reference page 中的指南,您会发现在 $the_query->the_post();
:
循环的每次迭代期间设置新 post 对象的模式
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
//Now reference WP post functions:
the_title();
the_permalink();
}
}
抱歉,这是一个完全不同的设计,但这从来没有让我失望过。
我能够正确显示标题和摘录,但我无法确定要使用哪个固定链接调用。
function display_excerpt_shortcode( $atts ) {
extract(shortcode_atts(array(
'excerptid' => ''
), $atts));
if ($excerptid) {
$args=array(
'p' => $excerptid,
'post_type' => 'post',
'post_status' => 'publish'
);
$my_query = new WP_Query($args);
if ($my_query) {
$title = apply_filters( 'the_title', $my_query->posts[0]->post_title );
$excerpt = apply_filters( 'the_excerpt', $my_query->posts[0]->post_excerpt );
$link = apply_filters( 'the_permalink', $my_query->posts[0]->post_permalink );
return '<h3>' . $title . '</h3> <p>' . $excerpt . '</p> <a class="button small primary" href="' . $link . '" title="' . $title . '" >Read More </a>';
}
}
return;
}
add_shortcode('display_excerpt', 'display_excerpt_shortcode');
我试过各种组合。 the_permalink、get_permalink、post_permalink...我只是不知道这是错误的组合还是我完全不对。提前致谢。
你试过了吗:
$link = get_permalink( $my_query->posts[0]->post_ID )
我认为你的问题是查询对象没有'permalink'属性。
按照 codex's class reference page 中的指南,您会发现在 $the_query->the_post();
:
$the_query = new WP_Query( $args ); // The Loop if ( $the_query->have_posts() ) { while ( $the_query->have_posts() ) { $the_query->the_post(); //Now reference WP post functions: the_title(); the_permalink(); } }
抱歉,这是一个完全不同的设计,但这从来没有让我失望过。