Displaying Custom Post Meta

时间:2017-03-30 作者:fatihint

我正在开发一个简单的排名插件。每个帖子都有自己的like计数,这些计数保存为自定义字段。

问题是,无论我做了多少研究,我仍然找不到适当的方法来操纵主题的设计,以便按我喜欢的方式显示post meta。我找到了一些改变主题内容的方法。php文件,但它没有意义,因为我希望这个插件可以在每个主题上工作。同样在wordpress codex中,我被告知可以通过在循环索引中使用模板标记来实现这一点。我可以自定义循环的php页面也不包括在我的插件目录中。

我应该怎么做才能正确显示所有主题的帖子排名元数据?

2 个回复
最合适的回答,由SO网友:Nathan Johnson 整理而成

要修改帖子的内容,可以使用the_content 滤器您(可能)只想将post meta添加到主查询中。如果没有,可以跳过is_main_query() 有条件的然后,您可以获取帖子元并按照您认为合适的方式对其进行格式化,然后将其附加到内容中。

//* Add filter to the_content if we\'re in the main query
add_action( \'the_post\', \'wpse_261935_the_post\' );
function wpse_261935_the_post( $post ) {
  if( is_main_query() ) {
    add_filter( \'the_content\', \'wpse_261935_the_content\' );
  }
}
function wpse_261935_the_content( $content ) {
  //* Make sure to add and remove filter for each post
  //* to make sure it\'s in the main query
  remove_filter( \'the_content\', \'wpse_261935_the_content\' );

  $wpse_261935_meta = get_post_meta( get_post()->ID, \'_wpse_261935_post_meta_key\', true );
  $wpse_261935_content = wpse_261935_format_post_meta( $wpse_261935_meta );

  return $wpse_261935_content . $content;
}
function wpse_261935_format_post_meta( $post_meta ) {
  //* Format the post meta however you\'d like
  return $html;
}

SO网友:Foxsk8
<?php

/*
Plugin Name: My post rating
Plugin URI: 
Version: 0.1
Author: NONE
Author uri: 
Description: My post rating with meta key output
Text Domain: rating
Domain Path: /languages
*/


/* Usage:


Code in template in single or loop.

Via function:

<?php echo my_simply_rating(); ?>

Via shortcode:

Post rating count: do_shortcode[\'myrating\'] */


function my_simply_rating() {
    $count = get_post_meta( get_post()->ID, \'_post_meta_key\', true );
    return $count;
}
add_shortcode(\'myrating\', \'my_simply_rating\');


?>

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在