#php #wordpress #wordpress-theming #wordpress-rest-api
#php #wordpress #wordpress-тематизация #wordpress-rest-api
Вопрос:
У меня странная проблема с пользовательской темой WordPress.
Я включил действия AJAX в своей теме следующим образом:
add_action('wp_ajax_get_levelOne_Content', 'get_levelOne_Content');
add_action('wp_ajax_nopriv_get_levelOne_Content', 'get_levelOne_Content');
get_levelOneContent
не делает ничего особенного. Скорее всего, он просто извлекает содержимое публикации и возвращает вывод HTML в качестве полезной нагрузки AJAX.
function get_levelOne_Content()
{
$postid = $_POST["postid"];
require(get_template_directory() .'/../../../wp-load.php');
@header('Content-Type: text/html; charset=' . get_option('blog_charset'));
@header('X-Robots-Tag: noindex');
send_nosniff_header();
nocache_headers();
$post_content = get_post($postid);
print_r($post_content);
$content = $post_content->post_content;
$title = $post_content->post_title;
$currentLang = apply_filters('wpml_current_language', null);
?>
<div class="wrapper__content fw fx fx__row">
<div class="post__content fx fx__col p__4">
<h2 class="txt0-t"><?php echo $title; ?></h2>
<div class="m__t-2">
<?php echo apply_filters('the_content', $content);?>
</div>
</div>
</div>
<?php
exit();
} ?>
Сообщение, которое меня интересует, имеет тег шорткода WP Form. Этот код работает совершенно нормально, как и предполагалось, когда я вхожу в систему как пользователь на этом сайте.
Однако, поскольку пользователь не прошел проверку подлинности, шорткод не отображается в полезной нагрузке через метод get_post(). Я проверил это с print_r($post_content);
помощью , которая не показывает ничего, связанного с шорткодом, присутствующим в исходном сообщении.
Я использовал свои известные навыки, чтобы устранить эту проблему, но я не могу этого сделать. Перед публикацией здесь я искал в Интернете и пробовал различные решения, но ни одно из предложенных решений не сработало.
Может кто-нибудь, пожалуйста, предложить мне что-нибудь?
Спасибо.
Комментарии:
1. Вы пробовали какой-либо другой короткий код, кроме WP Form?
2. привет ! да, я только что попробовал использовать тег embed, и он сработал так, как задумано. итак, проблема заключается в конфигурации WPForms?
3. Да, потому что вы уже используете правильные перехваты (один для входа в систему и один для использования без входа в систему). Возможно, ваши WP Forms настроены на отображение только для зарегистрированных пользователей. Вы можете попробовать использовать
Contact Form 7
илиFormidable Forms
создать ту же форму.4. спасибо за ссылку. Я также пробовал это раньше. Я также включил другие дополнения и поиграл с некоторыми настройками. Мне кажется, что я не могу встроить короткий код формы и просмотреть его анонимно. Таким образом, проблема вообще не связана с WP Rest API. Скорее всего, виновником является WPForms в целом. Я попробую несколько вещей сейчас, и я опубликую позже. Спасибо за ваш вклад.
5. Тогда удачи!