Intereting Posts
Как связать существующего пользователя с сайтом в многопользовательской настройке программно Как я могу использовать wp_get_image_editor для изменения размера изображения Плагин системного аудита? Как отключить profile.php для пользователей? Как изменить объект продукта WC в этот формат данных? Как ограничить доступ к wp-содержимому, wp-includes и всем подпапкам Проблема с возвратом более чем однострочных титров Изменение таксономического термина путём (wp_update_term) Деактивировать плагин на версии wp wp_enqueue_scripts не работает в пользовательской теме add_rewrite_rule и передача переменных для пользовательских типов сообщений Просмотреть последние созданные категории Woocommerce: дополнительное добавленное поле страны, не использующее ценность из базы данных Запросить текущие и будущие события, упорядоченные по дате начала Редактировать Импортированные расширенные пользовательские поля из WordPress Dashboard

admin-ajax.php GET заголовки пользовательских сообщений

Я не могу получить заголовки своего пользовательского сообщения.

это то, что я делаю:

//IN functions.php function fluid_scripts() { wp_enqueue_script('lateral-fluid', get_template_directory_uri().'/js/lateral-fluid.js', array('jquery')); wp_localize_script( 'lateral-fluid', 'ajaxFluid', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ))); } add_action('init', 'create_post_type'); function create_post_type(){ resgister_post_type ( 'portfolio', array ( 'labels' => array( 'name' => __('beds'), 'singular_name' => __('bed') ), 'public' => true, 'has_archive' => true, ) ); } add_action( 'wp_ajax_nopriv_lateral_fluid', 'my_lateral_fluid' ); add_action( 'wp_ajax_lateral_fluid', 'my_lateral_fluid' ); function my_lateral_fluid() { //echo "test"; $args = array( "post_type" => "portfolio", "posts_per_page" => -1 ); $portfolio_query = new WP_Query($args); while($portfolio_query->have_post() ){ $portfolio_query->the_post(); echo "<li>" . get_the_title() . "</li>"; } wp_die(); } 

Я проверяю свой url admin-ajax.php своим действием: http: //localhost/wordpress/wp-admin/admin-ajax.php? Action = lateral_fluid , и он ничего не отображал. Если я раскомментирую // echo "test"; он отображает тест. Я уже добавляю 5 пользовательских сообщений с их названиями.

Почему я не получаю заголовки своего пользовательского сообщения (портфолио). Что мне не хватает?

Заранее спасибо

Solutions Collecting From Web of "admin-ajax.php GET заголовки пользовательских сообщений"

Сначала замените:

 resgister_post_type 

с:

 register_post_type 

для исправления опечатки.

Во-вторых, замените:

 while( $portfolio_query->have_post() ){ 

с

 while( $portfolio_query->have_posts() ){ 

где вы забыли множественное число.

Заметка

Причина, по которой вызывать несуществующие методы:

 $portfolio_query->some_non_existent_method() 

не вызывает ошибку PHP, является магическим методом WP_Query класса WP_Query :

 /** * Make private/protected methods readable for backwards compatibility. * * @since 4.0.0 * @access public * * @param callable $name Method to call. * @param array $arguments Arguments to pass when calling. * @return mixed|false Return value of the callback, false otherwise. */ public function __call( $name, $arguments ) { if ( in_array( $name, $this->compat_methods ) ) { return call_user_func_array( array( $this, $name ), $arguments ); } return false; } 

Без этого мы бы ожидали:

Неустранимая ошибка: вызов неопределенного метода WP_Query::some_non_existent_method()

Поэтому создание опечаток в WP_Query методов WP_Query может оказаться сложным для обнаружения.

Я думаю, что лучше было бы генерировать исключение вместо того, чтобы возвращать false для несовместимых методов:

 throw new Exception( sprintf( __( 'Call to undefined method WP_Query::%s' ), sanitize_key( $name ) ) );