如何将WordPress函数应用于存档页面中没有ID的内容?

时间:2017-03-08 作者:user6686780

在一个归档页面内,我有多个框。在这些框中,我想添加星级,但我不想为每个框创建单独的帖子,我只想手动创建框。所有星级插件都想获取帖子ID,但我不想要帖子ID,我只想在一个孤立的实例中应用该函数。

我还希望在同一归档页中输出多个函数(在本例中,在同一归档页上输出多个星级)。

而且,我输出的帖子甚至不是帖子或页面。事实上,从技术上讲,它是一个归档页面,它实际上从不显示任何帖子,而是显示页面内的各种框,但不显示任何帖子。

我尝试过的一件事是指定一个不存在的帖子id,比如999999999 1,这个数字永远不会成为真正的帖子id(因为我不会写10亿篇博客帖子)。然而,这不起作用,它只是告诉我那个ID不存在。

这是一幅图像,显示了一些带有星星的方框,这样您就可以看到:

enter image description here这个页面是什么,是一个归档页面。也就是说,当您访问类别URL(如mywebsite)时,它是可见的页面。com/类别。通常,我可以在归档页面上循环显示该类别的一些帖子。但在这里我并没有这样做,我只是在分类档案页面中放了一些框。

基本上所有的框都是PHP/HTML框,我想手动应用星级,或者我真的想在一个孤立的实例中应用任何短代码。而不是申请一个职位。

至于代码,下面是我使用的代码:

<?php echo do_shortcode(\'[ratings id="99999999991"]\'); ?>
在这个短代码中,它是用于星级评定插件的,并且该短代码允许您使用显示任何帖子id的星级评定id="".

快捷码不起作用,因为它说“没有带有该ID的帖子”。当我尝试的时候<?php echo do_shortcode(\'[ratings]\'); ?> 它显示空的星星图像,但当我尝试单击时,它不会做任何事情,实际上,如果我尝试对一个方框进行评级,所有方框星星都会同时受到影响并给出错误。

我还尝试使用高级自定义字段(ACF插件):

<?php the_field(\'star_rating\'); ?>
什么star_rating 这里是,在高级自定义字段中,我有一个用于ACF的星级评定插件,我创建了一个自定义星级评定高级自定义字段,并将其命名为star_rating.

ACF代码不起作用,因为它给了我一个错误,因为它没有包含在任何循环中,也没有应用于任何特定的帖子。

如果在帖子中使用,这两个代码示例都可以使用。但是,我想使用without 和实际的帖子,就其本身。

我如何应用wordpress函数来获取帖子ID,而不需要为其指定帖子ID(尤其是因为我希望在页面中有多个帖子,而它实际上不是一个页面或帖子,而是一个归档页面)?

1 个回复
SO网友:Fayaz

您的分级插件无法处理自定义HTML内容(例如,这些框)。为什么?因为它将在哪里保存评级相关数据?它必须把数据保存在某个地方,对吗?

现在,您不想在任何post, 那很好。您的另一个选择是创建custom post type. 您可以使用一个插件,如Custom Post Type UI.

WordPress允许您创建自定义内容(例如:Rating Box) 被称为custom post type, 可以用于任何目的。

创建自定义帖子类型(使用插件或自己的自定义代码)并命名后(例如)Rating Box, 您可以使用ACF 创建自定义的插件rating 字段Rating Box. 然后,使用此自定义帖子类型来开发自定义存档页面。一旦你这样做了,你就可以使用评级插件对他们进行评级(如果该插件支持自定义帖子类型,那么标准插件应该支持自定义帖子类型)。

另一种选择是使用Settings API 使用设置API中设置的值保存数据并在自定义HTML框中显示分级,或Options API.

相关推荐

Shortcode to pull posts

我需要一些帮助。我创建了一个短代码来引入帖子,然后使用ajax加载更多帖子。我的一切都正常,但它复制了第一组帖子。下面是我的代码。这是shortcode函数:add_shortcode( \'articles-grid\', \'articles_grid\' ); function articles_grid( $atts ) { $showdate = $showauthor = $post_meta = $post_author = $post_seperator