0

我正在编辑自定义帖子类型模板,并使用自定义字段将信息输入到要包含在页面上的元框中,并在所有页面上包含一些静态默认文本。

我基本上需要将 the_content 中的帖子信息与静态文本和一些元框信息“组合”在一起。这就是我想要的:

  • 内容
  • 静态文本
  • 元框 1
  • 更多静态文本
  • 元框 2
  • _content 的结尾

我有插件,在 the_content 之前添加社交按钮,在 the_content 之后添加签名,所以我试图弄清楚如何将我所有的自定义内容夹在它们之间。

如果我只是在模板中添加元框,它们会显示在 the_content 之外,并且插件会显示在不需要的地方。

4

3 回答 3

1

我最终自己解决了这个问题。解决方案:使用 functions.php 和 add_filter,我必须创建一个新函数来创建默认内容,而且效果很好。

这是任何有兴趣的人的通用代码:

function custom_post_type_default_content($content) {
global $post;
    if ($post->post_type == 'your-custom-post-type') {
    $content .= '<p> '. get_post_meta( $post->ID, "metabox-1-slug", true ).' 
    <br />
    <p> '. get_post_meta( $post->ID, "metabox-2-slug", true ).'</p>
    <p>YOUR TEXT HERE.</p>';
}
add_filter('the_content', 'custom_post_type_default_content', 0);

请注意,靠近末端的零控制放置。我有一个优先级为“1”的社交媒体插件,为了让默认内容出现在其上方,我必须将其设为“0”优先级。

还要注意打开和关闭以下代码的单个撇号$content .=

您基本上可以在这些撇号之间添加您想要的任何内容,在这种情况下,我正在提取元框信息,这些信息有自己的包含代码的撇号。它变得混乱!

换句话说,您的代码应该$content .='YOUR CUSTOM CONTENT'在这些撇号内,添加您的文本、代码等。独立元框代码'. get_post_meta( $post->ID, "metabox-1-slug", true ).'嵌套在您的自定义内容文本所在的位置。

我基本上是在向自己解释这一点,因为这些是让我绊倒的事情,所以我想详细解释它们以帮助像我这样的其他人。或者当我必须再去看看这个的时候我!

于 2011-09-18T16:59:22.687 回答
0

在此处或在 pastebin 上发布您的 single.php 以及您正在使用的自定义字段名称(以及您想要它们的位置),我会尽力帮助您弄清楚您想要什么。

于 2011-09-04T22:07:47.330 回答
0

将此代码复制到您的 function.php 文件中。

function content_function_update($content) {

    global $wp_query, $post;

    if ($post->post_type == 'your-custom-post-type') {

       $postid = $wp_query->post->ID;   
       $value1 = "your value 1";

       if($value1 !== '') {
          $content = $content . "<br>" . $value1 
       }
       else {
          $content = $content;
       }
    }

    return $content;
}

add_filter('the_content', 'content_function_update');

在变量中添加任何自定义内容并将其附加到 $content 变量。

于 2016-08-23T23:53:48.567 回答