2015-01-04 2 views
0

Я ищу какую-то помощь, по какой-то причине этот код не работает при попытке отобразить общие вложения изображений на главной странице index.php.wordpress count изображение вложения

// Get all the attachments 
$attachments = get_posts (array(
'numberposts' => -1, 
'post_type' => 'attachment', 
'post_mime_type' => 'image', 
'post_parent' => get_the_ID(), 
'post_status' => 'inherit', 
)); 

// Count all the attachments 
$total = count($attachments); 

Проблема заключается в том, петля находится в главном index.php странице, но это вызов post.php шаблон, так что я поместил этот код там вместо этого (я предполагаю, что все еще в курсе?) Я то вызов $total чуть ниже, где я хочу показать «Просмотреть все # изображения».

Любые идеи, почему это просто отображение числа как 0, хотя я добавил галерею изображений в сообщение, используя базовую медиа-библиотеку в Wordpress?

Thanks

+0

Если добавить 'print_r ($ вложения);' есть все, что напечатано на странице? – Howli

+0

На самом деле, похоже, он работал в конце. Казалось, что проблема с изображениями, которые мы использовали, чтобы попытаться подсчитать. Спасибо за вашу помощь. – jamhunn89

ответ

0

Количество подключений увеличивается только в том случае, если оно прикреплено к сообщению. Вы можете заставить счетчик, добавив следующее:

$wp_taxonomies['category']->update_count_callback = '_update_generic_term_count';

в функции в вашем functions.php что-то вроде этого:

function change_category_arg() { 
    global $wp_taxonomies; 
    if (! taxonomy_exists('category')) 
     return false; 

    $wp_taxonomies['category']->update_count_callback = '_update_generic_term_count'; 

} 
add_action('init', 'change_category_arg'); 

Объяснение:

Это имеет большое значение в случае вложений. Поскольку приложение является типом сообщения, используется значение _update_post_term_count() по умолчанию. Однако это может быть нежелательным, потому что это будет только считать вложения, которые на самом деле прикреплены к другому сообщению (например, когда вы вставьте изображение в сообщение). Это означает, что вложения, которые вы просто загрузите в WordPress, используя медиабиблиотеку, но не на самом деле присоединяетесь к другому сообщению, не будут учитываться. Если ваше намерение за связывание таксономии с вложениями состояло в том, чтобы использовать медиатеку в качестве своего рода решения для управления документами, вы, возможно, больше заинтересованы в количестве непривязанных элементов мультимедиа, чем в прикрепленных к сообщениям. В этом случае вы должны принудительно использовать _update_generic_term_count(), установив «_update_generic_term_count» в качестве значения для update_count_callback.

из Wordpress Codex on register_taxonomy

Смежные вопросы