Wordpress ... удалить пост, если удален пост - PullRequest
0 голосов
/ 10 мая 2019

Мои пользователи предоставляют внешнюю ссылку при создании сообщения.Если внешняя ссылка удалена, локальный пост также должен быть удален.Для этого я попытался запустить этот код ...

function check_external_page_status()
{
if( is_single() )
{
   if(get_field('external_listing_page'))
    {
        $external_url = get_field('external_listing_page');

        function get_http_response_code($external_url) {
            $external_headers = get_headers($external_url);
            return substr($external_headers[0], 9, 3);
        }

        $get_http_response_code = get_http_response_code($external_url);

        if ( $get_http_response_code == 200 ) {
            //echo "OKAY!";
        }
        else
        {
            //echo "Not okay!";
            //echo $get_http_response_code;
            //echo get_the_ID();

            wp_delete_post( get_the_ID(), false );
            wp_redirect( home_url( '/expired-listing/',410 ) );
            exit;
        }       
    }
}
}
add_action( 'template_redirect', 'check_external_page_status' );

... но я получаю эти ошибки ...

Предупреждение: get_headers (): php_network_getaddresses: getaddrinfoне удалось: имя или служба не известны в /home/cornwal2/public_html/listings/wp-content/plugins/insert-php/includes/class.execute.snippet.php(390): eval () код в строке 12

Предупреждение: get_headers (http://fdsafdsfasd.ca): не удалось открыть поток: php_network_getaddresses: getaddrinfo не удалось: имя или служба не известны в / home / cornwal2 / public_html / lists / wp-content / plugins / insert-php /includes / class.execute.snippet.php (390): код eval () d в строке 12

Предупреждение: невозможно изменить информацию заголовка - заголовки уже отправлены (вывод начался с / home / cornwal2 / public_html /lists / wp-content / plugins / insert-php / includes / class.execute.snippet.php (390): код eval (): 12) в / home / cornwal2 / public_html / lists / wp-includes / pluggable.php on line 1251

Предупреждение: невозможно изменить информацию заголовка - заголовки ужеотправлено (вывод начался с /home/cornwal2/public_html/listings/wp-content/plugins/insert-php/includes/class.execute.snippet.php(390): eval () 'd code: 12) в / home/cornwal2/public_html/listings/wp-includes/pluggable.php в строке 1254

1 Ответ

0 голосов
/ 10 мая 2019

Так что я разобрался ... Первые 2 предупреждения относятся к недопустимой внешней странице.Хотя предупреждение является законным, в этом случае я не хочу его видеть, поэтому я просто отключил предупреждения.Что касается последних предупреждений, я использую редирект javascript вместо wp_redirect ()

function check_external_page_status()
{
if( is_single() )
{
   if(get_field('external_listing_page'))
    {
        $external_url = get_field('external_listing_page');

        function get_http_response_code($external_url) {
           $external_headers = get_headers($external_url);
            return substr($external_headers[0], 9, 3);
        }

        error_reporting(E_ERROR);
        $get_http_response_code = get_http_response_code($external_url);
        //error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
        error_reporting(E_ERROR | E_WARNING | E_PARSE);

        if ( $get_http_response_code == 200 ) {
            //echo "OKAY!";
        }
        else
        {
            wp_die($external_url."<br>Error:".$get_http_response_code);
            //echo "Not okay!";
            //echo $get_http_response_code;
            //echo get_the_ID();

            wp_delete_post( get_the_ID(), false );
            //wp_redirect( home_url( '/expired-listing/',410 ) );
            echo "<script>window.location.replace('".home_url('/expired-listing/')."');</script>";
            exit;
        }       
    }
}
}
add_action( 'template_redirect', 'check_external_page_status' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...