显示外部数据-而不是发布

时间:2015-02-20 作者:Brad

我正在创建一个插件,它需要显示外部数据,而不是wordpress帖子。

我所做的:注册重写,以便wp识别我的存档/单个URL,连接到template_include 如果请求的URL是我的URL,则指示它使用我的模板,然后在模板中调用一个函数来加载外部数据并以后期/归档格式显示。

只要我不切换模板,这就行了。不幸的是,在第214和215个模板结构中有一个变化,其中#content#main 是倒置的。

二十点十五分:body > #page > #content > #primary > #mainbody > #page > #main > #primary > #content

twentyfifteen/single.php

get_header(); ?>

<div id="primary" class="content-area">
    <main id="main" class="site-main" role="main">

    <?php
    // Start the loop.
    while ( have_posts() ) : the_post();

twentyfourteen/single.php

get_header(); ?>

<div id="primary" class="content-area">
    <div id="content" class="site-content" role="main">
        <?php
            // Start the Loop.
            while ( have_posts() ) : the_post();
因此,我的问题是:

我这样做对吗?您知道注入外部数据的更好方法吗\\\\主>\\\\内容

3 个回复
最合适的回答,由SO网友:mjakic 整理而成

你可以挂接任何帖子的内容,并通过WordPress HTTP API.像这样:

add_filter(\'the_content\', \'my_content_178750\', 1, 99);

function my_content_178750($content) {
    return wp_remote_retrieve_body(wp_remote_get(\'http://example.com\'));
}
此外,还可以检查您所在的路径,并根据该路径决定您想要得到什么。

SO网友:skribe

是的,有一种简单的方法可以使它与大多数模板一起工作<这就是为什么这么多插件使用shortcodes 为了注入数据或添加插件设计的任何功能。模板结构太不可预测,无法按照您当前追求的方式进行。

因此,从API开始,只需命名短代码,然后将其添加到插件中即可。

function foobar_func( $atts ){
    return "foo and bar";
}
add_shortcode( \'foobar\', \'foobar_func\' );

SO网友:pSyToR

根据Skribe之前写的。。。如果你还不习惯什么是短码,我会尽量详细说明他的意思。。。

创建短代码是为了在帖子或页面中以不同的方式显示不同的内容。

您可以在此处看到WordPress中包含的现有短代码的当前列表(根据2015-02-20):

http://en.support.wordpress.com/shortcodes/

Skribe所指的API可以在这里找到:(根据2015-02-20)您可以找到有关shortcode的更多详细信息:

http://codex.wordpress.org/Shortcode_API

您可以看到,在帖子或页面中添加短代码将显示图片。(请阅读更多详细信息)。

对于插件,您还可以创建自己的短代码。这将做什么,它将控制您想要的位置和插件的显示方式。一个短代码包含在一个页面或一篇文章中,所以它总是出现在它应该出现的地方(如果你想要的话)。根据Skribe给你的代码:

function foobar_func( $atts ){
    return "foo and bar";
}
add_shortcode( \'foobar\', \'foobar_func\' );
您将创建一个页面或一篇文章,其中包含短代码[foobar],它将显示此短代码调用的函数。。。在这种情况下,它会在屏幕上写“foo和bar”。

如果你想让你的插件出现在帖子或页面之外的其他地方,你应该查看WordPress挂钩。如果你需要更多关于钩子的细节,请告诉我,我会补充我的答案。但考虑到你正在谈论的主要内容和内容,你需要的应该是有自己的短代码。

结束

相关推荐

1 post, 2 templates

我想能够呈现两种不同的风格(2个模板)后。例如,假设我有post ID 133,我希望有两个url来访问它,因此它会呈现不同模板应用的位置。洛雷姆。com/render1/133。com/render2/1333,例如。。。或者可能是这样的:洛雷姆。com/post/133和lorem。com/post/133?模板=2您将如何操作?

显示外部数据-而不是发布 - 小码农CODE - 行之有效找到问题解决它

显示外部数据-而不是发布

时间:2015-02-20 作者:Brad

我正在创建一个插件,它需要显示外部数据,而不是wordpress帖子。

我所做的:注册重写,以便wp识别我的存档/单个URL,连接到template_include 如果请求的URL是我的URL,则指示它使用我的模板,然后在模板中调用一个函数来加载外部数据并以后期/归档格式显示。

只要我不切换模板,这就行了。不幸的是,在第214和215个模板结构中有一个变化,其中#content#main 是倒置的。

二十点十五分:body > #page > #content > #primary > #mainbody > #page > #main > #primary > #content

twentyfifteen/single.php

get_header(); ?>

<div id="primary" class="content-area">
    <main id="main" class="site-main" role="main">

    <?php
    // Start the loop.
    while ( have_posts() ) : the_post();

twentyfourteen/single.php

get_header(); ?>

<div id="primary" class="content-area">
    <div id="content" class="site-content" role="main">
        <?php
            // Start the Loop.
            while ( have_posts() ) : the_post();
因此,我的问题是:

我这样做对吗?您知道注入外部数据的更好方法吗\\\\主>\\\\内容

3 个回复
最合适的回答,由SO网友:mjakic 整理而成

你可以挂接任何帖子的内容,并通过WordPress HTTP API.像这样:

add_filter(\'the_content\', \'my_content_178750\', 1, 99);

function my_content_178750($content) {
    return wp_remote_retrieve_body(wp_remote_get(\'http://example.com\'));
}
此外,还可以检查您所在的路径,并根据该路径决定您想要得到什么。

SO网友:skribe

是的,有一种简单的方法可以使它与大多数模板一起工作<这就是为什么这么多插件使用shortcodes 为了注入数据或添加插件设计的任何功能。模板结构太不可预测,无法按照您当前追求的方式进行。

因此,从API开始,只需命名短代码,然后将其添加到插件中即可。

function foobar_func( $atts ){
    return "foo and bar";
}
add_shortcode( \'foobar\', \'foobar_func\' );

SO网友:pSyToR

根据Skribe之前写的。。。如果你还不习惯什么是短码,我会尽量详细说明他的意思。。。

创建短代码是为了在帖子或页面中以不同的方式显示不同的内容。

您可以在此处看到WordPress中包含的现有短代码的当前列表(根据2015-02-20):

http://en.support.wordpress.com/shortcodes/

Skribe所指的API可以在这里找到:(根据2015-02-20)您可以找到有关shortcode的更多详细信息:

http://codex.wordpress.org/Shortcode_API

您可以看到,在帖子或页面中添加短代码将显示图片。(请阅读更多详细信息)。

对于插件,您还可以创建自己的短代码。这将做什么,它将控制您想要的位置和插件的显示方式。一个短代码包含在一个页面或一篇文章中,所以它总是出现在它应该出现的地方(如果你想要的话)。根据Skribe给你的代码:

function foobar_func( $atts ){
    return "foo and bar";
}
add_shortcode( \'foobar\', \'foobar_func\' );
您将创建一个页面或一篇文章,其中包含短代码[foobar],它将显示此短代码调用的函数。。。在这种情况下,它会在屏幕上写“foo和bar”。

如果你想让你的插件出现在帖子或页面之外的其他地方,你应该查看WordPress挂钩。如果你需要更多关于钩子的细节,请告诉我,我会补充我的答案。但考虑到你正在谈论的主要内容和内容,你需要的应该是有自己的短代码。

相关推荐

Custom templates vs page-slug

我目前一直在使用slug来设置页面模板,使用普通的层次结构例如,如果我想更改的页面模板http://www.example.com/about-us, 我会编辑关于我们的页面。php如果客户端要去更改页面slug,它将不再加载正确的模板。在WordPress后端使用“自定义模板”下拉列表是否更好?就这一点而言,最佳做法是什么?非常感谢