Ответы в темах

Просмотр 15 ответов — с 106 по 120 (всего 149)
  • Автор Dmitry Kohan

    (@dmay1989)

    @yube , благодарю вас
    Разобрался — действительно edit_post_link () всего лишь выводит ссылку в админку, но впрочем там уже и можно изменить все произвольные поля записи, опять-таки да — это админка, доступ к которой получен из лицевой стороны сайта, не фронт-энд, спасибо за пояснение.
    По поводу post_content_filtered вы писали:

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

    Даже если запись добавляется из фронт-энда пользователем и в поле post_content_filtered в этот же момент вносится некая информация — даже используя приведённый мной фильтр выше всё равно некий плагин сможет переписать данное поле ?
    или несмотря на любые фильтры это поле всё же лучше не использовать для хранения данных (пусть даже и промежуточных, но которые всё равно могут когда-нибудь пригодиться) ?

    Автор Dmitry Kohan

    (@dmay1989)

    @yube , но ведь моя «конструкция» ниже позволяет редактировать post_title и post_content из фронт-энда:

    the_title('<header><h2>','</h2></header>');
    the_content();
    edit_post_link("Изменить запись № $i",'','','','button special small');

    Вот я и подумал, что может быть имеются схожие алгоритмы и для метаданных записи ?
    <br>
    По поводу использования post_content_filtered вы писали:

    Конечно можно. Но ровно до момента активации плагина, автор которого тоже подумал «зачем полю пропадать?»

    А если в functions.php использовать фильтр, приведённый здесь. Тогда ведь независимо от каких-либо плагинов поле post_content_filtered сохранится, верно ?

    Автор Dmitry Kohan

    (@dmay1989)

    @yube , спасибо ещё раз
    Подскажите ещё, пожалуйста, а если редактировать произвольные поля из фронт-энда ? в WP есть какая-то специальная функция подобно следующей для поста
    edit_post_link("Изменить запись № $i",'','','','button special small'); ?
    Также наткнулся на вопрос касательно поля post_content_filtered таблицы posts — временный контент записи, нашел его объяснение:

    Там хранится временный контент… WordPress не использует это поле вообще, оно для плагинов. Оно устанавливается как пустое при каждом обновлении записи, кроме случаев, когда оно не указано. Т.е. если при обновлении записи это поле указано, оно будет записано, но если при другом обновлении оно не указано, оно сотрется.

    Записал в post_content_filtered данные, потом изменил название поста, рубрику. Поле post_content_filtered не очистилось, оно теперь не очищается и в принципе его можно использовать для хранения неких данных ?

    Автор Dmitry Kohan

    (@dmay1989)

    @yube , по поводу отображения в админке произвольных полей вы писали:

    Справа вверху «настройки экрана» для классики

    Но там нет ничего подобного: http://prntscr.com/sfuyop
    Из учебника по WP:

    WordPress добавляет метаполе произвольных полей на экран редактирования записи по умолчанию, как показано здесь: http://prntscr.com/sfuznu

    Если я открываю запись на редактирование (запись типа post, произвольные поля добавлены с помощью update_post_meta()) — произвольных полей нет, вижу следующее: http://prntscr.com/sfv27j
    Подскажите, пожалуйста, что я делаю не так или что-то упустил и не сделал ?

    Автор Dmitry Kohan

    (@dmay1989)

    @yube , спасибо
    Как раз с id поста у меня заминка. «Чужие» мета выводить не планирую. Но как быть с id данного текущего поста ? Добавляется пост через фронт-энд пользователем после отправки формы:

    $post_data = array(
    'post_title'    => "$heat_name_object",
    'post_content'  => "<table class='table table-bordered'>
                          <tr><td>Дата</td>
    <td>[post id=$post_id key='meta_name'</td></tr></table>",
    'post_status'   => 'publish'
    );
    $post_id = wp_insert_post( wp_slash($post_data) );
    update_post_meta( $post_id, 'meta_name', "$heat_region" );

    т.е. на момент формирования $post_data ещё ведь неизвестно $post_id, его можно в принципе не указывать ? или пост сначала нужно добавить, а потом уже обновить и прописать в post_content данный шорт-код и в нем указать getID() ? Этот момент не понял (т.е. если не указать id, система возьмет текущий?)
    <br>
    ps Можно также вопрос, как в админке для постов отобразить блок «Произвольные поля»? Нужно писать код, или это делается средствами админки ? (не могу понять)

    Автор Dmitry Kohan

    (@dmay1989)

    и соответственно при изменении meta_value в таблице postmeta автоматом при посещении пользователем страницы с данной записью изменится при выводе её post_content. Верно я рассуждаю ?

    Автор Dmitry Kohan

    (@dmay1989)

    @yube , спасибо большое за ответ, понял свою ошибку
    Поясню свою идею:
    я пытаюсь, чтобы поле post_content при выводе пользователю зависело от содержимого полей meta_value данного поста в таблице postmeta;
    Вопрос:
    имеет ли право на жизнь реализация данной идеи посредством шорт-кодов ?
    т.е. в поле post_content среди прочего текста будет прописано что-то вроде

    [post id=8 meta_1='meta_name' meta_2='meta_name_2']

    где id — это id данной записи,
    meta_n — это некий meta_key записи.
    В functions.php темы размещаю соответствующую функцию, которая будет извлекать все meta_value соответствующей записи из базы посредством
    $meta = get_post_meta($id,$meta_n,true);
    и подставлять их вместо шорт-кода при выводе поля post_content.
    Вроде всё расставил. Имеет ли право на жизнь такая реализация ?

    Автор Dmitry Kohan

    (@dmay1989)

    @yube , извините ещё раз за беспокойство
    Что я имел ввиду:
    Вы не подскажете, можно ли из поля post_content обратиться к конкретному произвольному полю данной записи в таблице postmeta посредством функции get_post_meta() и вывести таким образом значение данного метаполя здесь же в поле post_content таблицы posts ?

    Автор Dmitry Kohan

    (@dmay1989)

    Спасибо огромное, применяю данный вариант — всё работает
    @yube , можно ещё вопрос по поводу хранения данных в таблицах posts и postmeta: если параметры передаваемые из формы хранить отдельно в postmeta, могу ли я выводить данные параметры также в поле post_content соответствующей записи таблицы posts ?

    Автор Dmitry Kohan

    (@dmay1989)

    Спасибо огромное ! Столкнулся с ещё одной трудностью
    @yube , подскажите, пожалуйста, а как быть с промежуточными данными, которые пользователь не вводит в форму, а которые вычисляются через ajax-запрос в зависимости от его выбора ? (если вкратце: пользователь выбирает дату, на основе этой даты я лезу в базу и нахожу нужный коэффициент, в functions.php вывожу его через echo "$index_build"; и записываю посредством ajax из custom.js в элемент формы span:

    function (response) 
      {$span.text(response);}

    Но как эту переменную передать в обработчик формы /forms/form_1.php ? при прямом обращении к $index_build из form_1.php естественно возникает ошибка, может есть какой-то другой вариант обращения к этой переменной? или нужно записывать её в <input type=»hidden»> и затем передавать в form_1.php ?

    Автор Dmitry Kohan

    (@dmay1989)

    @yube , прошу прощения, перечитал ещё раз Ваши последние ответы и вот:
    А файл может быть любой, в т.ч. тот, который вообще не подключался во время вывода формы.
    Но как тогда система «поймёт» из какого файла брать код обработки формы ?

    Автор Dmitry Kohan

    (@dmay1989)

    Спасибо огромное! Буду пробовать

    Автор Dmitry Kohan

    (@dmay1989)

    @yube , и если форм несколько и все находятся в author.php, и все они записывают в базу индивидуальные посты, т.е. пользователь сам решает какую форму из n заполнить, я ведь всё равно могу здесь в author.php разместить код обработки всех форм — и просто проверять какую из n форм отправил пользователь: скажем по индивидуальному параметру $_POST формы вот так:

    if (isset($_POST['form_1'])) {
    ...
    }

    и таким образом в определенный момент времени обрабатывать одну из форм ?

    Автор Dmitry Kohan

    (@dmay1989)

    @yube , т.е. если код обработки формы находится в том же файле, что и сама форма, то в action можно ничего не прописывать ?

    Автор Dmitry Kohan

    (@dmay1989)

    @yube , можно задать ещё один вопрос касательно записи в базу:
    форма ввода в моём случае находится на странице архива автора author.php, можно ведь разместить код, который принимает и записывает в базу данные введённые пользователем в форме, прямо в author.php, т.е. форму ввода прописать так:
    <form class="form-horizontal" action="author.php" method="post">
    или же в параметре action нужно прописывать скажем functions.php и соответствующий код обработки размещать там в functions.php?

Просмотр 15 ответов — с 106 по 120 (всего 149)