Добавить Контент По Умолчанию К Сообщениям В Определенной Категории?

  • Автор темы Windowsreplacementsi
  • Обновлено
  • 21, Oct 2024
  • #1

Обновление/уточнение вопроса: Как вы могли бы изменить следующий код из этой темы: Принудительно выбрать категорию перед созданием нового сообщения?

 add_filter( 'load-post-new.php', 'wpse14403_load_post_new' );
function wpse14403_load_post_new()
{
$post_type = 'post';
if ( isset( $_REQUEST['post_type'] ) ) {

$post_type = $_REQUEST['post_type'];
}
// Only do this for posts
if ( 'post' != $post_type ) {

return;
}
if ( array_key_exists( 'category_id', $_REQUEST ) ) {

add_action( 'wp_insert_post', 'wpse14403_wp_insert_post' );

return;
}
// Show intermediate screen
extract( $GLOBALS );
$post_type_object = get_post_type_object( $post_type );
$title = $post_type_object->labels->add_new_item;
include( ABSPATH . 'wp-admin/admin-header.php' );
$dropdown = wp_dropdown_categories( array(

'name' => 'category_id[]',

'hide_empty' => false,

'echo' => false,
) );
$category_label = __( 'Category:' );
$continue_label = __( 'Continue' );
echo <<<HTML
<div class="wrap">
<h2>{$title}</h2>
<form method="get">

<table class="form-table">

<tbody>

<tr valign="top">

<th scope="row">{$category_label}</th>

<td>{$dropdown}</td>

</tr>

<tr>

<td></td>

<th><input name="continue" type="submit" class="button- primary"            value="{$continue_label}" /></th>

</tbody>

</table>

<input type="hidden" name="post_type" value="{$post_type}" />

</form>
</div>

HTML;

include( ABSPATH . 'wp-admin/admin-footer.php' );

exit();
}
// This function will only be called when creating an empty post,
// via `get_default_post_to_edit()`, called in post-new.php
function wpse14403_wp_insert_post( $post_id )
{
wp_set_post_categories( $post_id, $_REQUEST['category_id'] );
}
 

который предлагает раскрывающееся меню для выбора категории ПЕРЕД созданием нового сообщения, чтобы добавить HTML-контент по умолчанию в определенную категорию???

Оригинальный вопрос:

Я работаю над сайтом электронной коммерции и хотел бы автоматически добавлять контент по умолчанию для сообщений в определенной категории, например. продукты.

Я нашел способ добавить контент по умолчанию ко всем сообщениям, но не могу ограничить его одной категорией.

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

Windowsreplacementsi


Рег
19 Mar, 2014

Тем
70

Постов
204

Баллов
574
  • 25, Oct 2024
  • #2

Используя опубликованный вами код, идентификатор выбранной категории доступен в

 add_filter( 'default_content', 'wpa70073_default_products_content' );
function wpa70073_default_products_content( $content ) {

// change this to your desired category ID

$products_category_id = 42;

if( isset( $_REQUEST['category_id'][0] )

&& $products_category_id == $_REQUEST['category_id'][0] )

return "<div>some default product content</div>";
}
 
, you can check that ID against your default_content категория в products filter and add content if there's a match:

$_REQUEST ||answer||

Отображение некоторого контента по умолчанию в редакторе контента на основе категории НЕТ возможный. Позвольте мне объяснить

Когда вы нажимаете кнопку «Добавить новый», WordPress создает объект по умолчанию в памяти для заполнения формы, которую он вам показывает, этот объект имеет идентификатор 0. Теперь, когда вы нажимаете кнопку «Сохранить», WordPress берет введенные вами данные и создает запись в базе данных. . Таким образом, новое сообщение не существует в базе данных и, следовательно, оно вообще не связано ни с одной категорией. Это делает невозможным различие между постами категории и не категории.

Лучшее, что вы можете сделать, это добавить на страницу javascript, который прослушивает события onchange категорий, а затем изменить текст этого поля, но опять же, это невозможно для содержимого, поскольку TinyMCE работает внутри iFrame, а javascript не имеет доступа к это

 

Nem_x_r


Рег
02 Apr, 2008

Тем
73

Постов
201

Баллов
586
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно