Включение пользовательских полей и статического текста в the_content в WordPress - PullRequest
0 голосов
/ 05 сентября 2011

Я редактирую шаблон пользовательского типа записи и использую пользовательские поля для ввода информации в мета-поле, которое будет включено на страницу, а также для включения статического текста по умолчанию на всех страницах.

Мне нужно собрать информацию о сообщении в the_content вместе со статическим текстом и некоторой мета-информацией. Вот что я хочу:

  • the_content
  • статический текст
  • метабокс 1
  • больше статического текста
  • метабокс 2
  • конец _контента

У меня есть плагины, которые добавляют социальные кнопки перед the_content и подпись после the_content, поэтому я пытаюсь выяснить, как расположить все свои пользовательские вещи между ними.

Если я просто добавлю мета-блоки в шаблон, они будут отображаться за пределами содержимого, а плагины отображаются в нежелательных местах.

Ответы [ 3 ]

1 голос
/ 18 сентября 2011

В итоге я понял это сам. Решение: используя 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 ).', который вложен в текст, где находится текст ВАШЕГО ПОЛЬЗОВАТЕЛЬСКОГО КОНТЕНТА.

Я в основном объясняю это себе, так как это было вещами, которые сбили меня с толку, так что подумал, что объяснит их подробно, чтобы помочь кому-то, как я. Или мне, когда мне нужно пойти посмотреть это снова!

0 голосов
/ 24 августа 2016

Скопируйте этот код в файл 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.

0 голосов
/ 05 сентября 2011

Опубликуйте свой single.php здесь или на pastebin вместе с именами настраиваемых полей, которые вы используете (и где вы их хотите), и я постараюсь помочь вам понять, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...