我想将单个帖子主题文件中的一些代码添加到过滤器中,但我不知道该怎么做,因为它包含get\\u post\\u meta()函数。我已经找过了,但似乎找不出来。
代码输入single-post.php
主题文件:
$apoth_original_title = get_post_meta( get_the_ID(), \'original_blog_title\', true);
$apoth_original_url = get_post_meta( get_the_ID(), \'original_url\', true);
?>
<a id="apoth_readmore" class="w-btn style_solid size_medium color_primary icon_none" href="<?php echo $apoth_original_url?>"><span class="w-btn-label">Read More at <em><?php echo $apoth_original_title ?></em></span></a>
<?php
尝试在中筛选
functions.php
:
function apoth_readmore_link( $content ) {
if( is_single() ) {
$content .= \'<a href="\' . get_post_meta(get_the_ID(), \'original_url\', true) . \'"> Read More</a>\' ;
}
return $content;
}
add_filter(\'the_content\', \'apoth_readmore_link\' )
我知道这不管用,因为
get_post_meta()
不回显自定义字段数据,但我不知道如何将其分配给变量,然后在过滤器函数的上下文中回显它。或者我还没有找到其他的方法?
SO网友:jgraup
尝试get_queried_object()
参考WP_Post
创建页面的。
如果您在一篇文章上,它将返回post对象如果您在一个页面上,它将返回page对象如果您在存档页面上,它将返回post类型对象如果您在类别存档中,它将返回category对象如果您在作者存档中,它将返回author对象等
function apoth_readmore_link( $content ) {
$post = get_queried_object();
if ( get_class($post)===\'WP_Post\' ) {
$url = get_post_meta($post->ID, \'original_url\', true);
$content .= sprintf( \'<a href="%s">Read More</a>\', $url, $url );
}
return $content;
}
add_filter(\'the_content\', \'apoth_readmore_link\' );