WordPress. ошибка плагина лайтбокса на apply_filter

Я использую плагин https://wordpress.org/plugins/show-post-in-lightbox/ отображать все любимые изображения каждого поста на странице. при нажатии на одно из этих изображений в лайтбоксе будет отображаться содержимое публикации.

Это все работает нормально, но оригинальный код, который отображает содержимое, использует:

if($_REQUEST['popup']!=''){
$postObj = get_post( $_REQUEST['pid'] );
echo $postObj->post_content;
exit;
}

Это прекрасно работает, кроме того, что это не очень нужно, потому что WordPress не может отформатировать HTML. также WordPress не будет распознавать шорткоды. Поэтому я решил дать сценарию шанс убедиться, что он работает хорошо, и я могу использовать шорткоды:

if($_REQUEST['popup']!=''){

$postObj = $_POST['pid'];
$content_post = get_post($$postObj);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;
exit;
}

Но это дает мне ошибку: ошибка при загрузке лайтбокса при открытии лайтбокса. Когда я удаляю строку APPLT_FILTERS, она не выдает ошибку (но поскольку мне нужна эта строка, она ничего не отображает)

Но я думаю, что за исключением того, что

$content = apply_filters('the_content', $content);

это тот, на котором падает лайтбокс.
Этот код находится внутри файлов плагинов. Кто-нибудь знает почему генерируется вышеприведенный код и вылетает 500?

Надеюсь, кто-нибудь может мне помочь!

весь код:

 if($_REQUEST['popup']!=''){

$postObj = $_POST['pid'];
$content_post = get_post($$postObj);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;
}

class spbc_showPostsWidget extends WP_Widget{

function spbc_showPostsWidget() {
$options = array('description' => 'Show posts from selected categories.');
parent::WP_Widget(false, $name = 'Show Posts By Category', $options);
}
/*-----------------------------------------------------------*/
function widget($args, $instance) {
extract($args, EXTR_SKIP);

$ost_title              = empty($instance['ost_title']) ? ' ' :     apply_filters('widget_title', $instance['ost_title']);
$ost_limit              = (is_numeric($instance['ost_limit'])) ? $instance['ost_limit'] : 5;
$ost_orderby            = ($instance['ost_orderby']) ? $instance['ost_orderby'] : 'date';
$ost_order              = ($instance['ost_order']) ? $instance['ost_order'] : 'desc';
$ost_exclude            = ($instance['ost_exclude'] != '') ? $instance['ost_exclude'] : 0;
$ost_excludeposts       = ($instance['ost_excludeposts'] != '') ? $instance['ost_excludeposts'] : 0;
$ost_category_id        = $instance['ost_categoryid'];
$ost_showdate           = ($instance['ost_show_date'] == 'on') ? 'yes' : 'no';
$ost_thumbnail          = ($instance['ost_thumbnail'] == 'on') ? 'yes' : 'no';
$ost_thumbnail_size     = ($instance['ost_thumbnail_size']) ? $instance['ost_thumbnail_size'] : 'thumbnail';

echo $before_widget;

$this->spbc_showWidget($instance);
echo $after_widget;
}
/*-----------------------------------------------------------*/
public static function get_UrlFromText($content,$url='Y'){

if($url=='Y'){
$imgpattern = '/src=[\'"]?([^\'" >]+)[\'" >]/';
preg_match($imgpattern, $content, $article_image);
}else{
preg_match_all('/<img[^>]+>/i',$content, $article_image);
}
return $article_image;
}

/*-----------------------------------------------------------*/
function spbc_showWidget($instance){
global $post;
$query    = array(
'posts_per_page' => $instance['ost_limit'],
'cat' => $instance['ost_categoryid'],
'orderby' => $instance['ost_orderby'],
'order' => $instance['ost_order'],
'category__not_in' => array($instance['ost_exclude']),
'post__not_in' => array($instance['ost_excludeposts'])
);

$wp_query = new WP_Query($query);

if ($wp_query->have_posts()):

echo '
<div class="list-posts-by-category">
<ul>';
while ($wp_query->have_posts()):
$wp_query->the_post();
$image_id = get_post_thumbnail_id();if(!empty($instance['ost_thumbnail'])){
if ( in_array($instance['ost_thumbnail_size'],array('thumbnail', 'medium', 'large', 'full'))) {
$ost_thumb_size = $instance['ost_thumbnail_size'];
}elseif ($instance['ost_thumbnail_size']){
$ost_thumb_size = array($instance['ost_thumbnail_size']);
}else {
$ost_thumb_size = 'thumbnail';
}
$ost_thumbnail = get_the_post_thumbnail($post->ID, $ost_thumb_size);
}else{
$ost_thumbnail = "";
}
?>

<li>
<a class="ostlightbox"  href="<?php echo get_site_url().'/index.php?pid='.$post->ID.'&popup=Y'; ?>" title="<?php echo the_title_attribute(); ?>">
<?php echo '<div class="ostoverlay"></div>'; ?>
<?php echo '<div class="titleconthidden"><p class="osttitle">'.$post->post_title.'</p></div>'; ?>
<?php echo '<div class="titlecont"></div>'; ?><?php

echo $ost_thumbnail;

?>
</a>
<?php if(!empty($instance['ost_show_date'])){ ?><span><?php      echo get_the_time('F jS, Y'); ?></span><?php } ?>
</li><?php
endwhile;
echo '
</ul>
</div>';
endif;
}

0

Решение

Вы проверили файл журнала ошибок Apache / PHP? Это важно для отладки 🙂

Я заметил 2 проблемы с вашим кодом — но исправление их может не исправить 500.

Эти несколько строк не делают то, что вы намереваетесь:

$postObj = $_POST['pid'];
$content_post = get_post($$postObj);

+ Изменить $_POST['pid'] в $_REQUEST['pid'], Переменная запроса pid не отправляется.

+ Изменить $$postObj в $postObj, Представить $_REQUEST['pid'] возвращенный 123 (образец идентификатора поста). призвание $$postObj на самом деле попытаться позвонить $123; эта переменная будет как несуществующей, так и недействительной, потому что она начинается с цифры.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]