setcookie() задает cookie, которое будет передано клиенту вместе с другими HTTP-заголовками. Как и любой другой заголовок, cookie должны передаваться до того как будут выведены какие-либо другие данные скрипта (это ограничение протокола). Это значит, что в скрипте вызовы этой функции должны располагаться до остального вывода, включая вывод тегов и , а также пустые строки и пробельные символы.
Warning: Cannot modify header information - headers already sent by (output started at /Users/Ihor/Code/playground/wp-includes/class.wp-styles.php:242) in /Users/Ihor/Code/playground/wp-content/themes/playground/footer.php on line 8
expires
Время, когда срок действия cookie истекает. Это метка времени Unix, то есть количество секунд с начала эпохи. Другими словами, желательно задавать это время с помощью функции time(), прибавляя время в секундах, через которое срок действия cookie должен истечь. Либо можно воспользоваться функцией mktime(). time()+60*60*24*30 установит срок действия cookie 30 дней. Если задать 0 или пропустить этот аргумент, срок действия cookie истечет с окончанием сессии (при закрытии браузера).
function my_setcookie_example()
{
setcookie(
'testing',
'123',
time() + 30 * DAY_IN_SECONDS, // вот так должно быть
COOKIEPATH,
COOKIE_DOMAIN
);
}
add_action( 'init', 'my_setcookie_example' );
После передачи клиенту cookie станут доступны через массив $_COOKIE при следующей загрузке страницы. Значения cookie также есть в $_REQUEST.
var_dump($_COOKIE['testing']);
сработает только после перезагрузки, а при первой попытке - NULL и: Notice: Undefined index: testing in /Users/Ihor/Code/playground/wp-content/themes/playground/functions.php on line 134
. /**
* Display native post thumbnail or a fallback image.
*
* @param string $size
* @param string $attr
*/
function the_post_thumbnail_fallback( $size = 'post-thumbnail', $attr = '' )
{
if ( has_post_thumbnail() ) :
echo get_the_post_thumbnail( null, $size, $attr );
else :
$post_thumbnail_id = get_option( 'default_post_thumbnail' );
$html = wp_get_attachment_image( $post_thumbnail_id, $size, false, $attr );
/**
* Filters the post thumbnail HTML.
*
* @param string $html The post thumbnail HTML.
* @param int $post_id The post ID.
* @param string $post_thumbnail_id The post thumbnail ID.
* @param string|array $size The post thumbnail size. Image size or array of width and height values (in that order). Default 'post-thumbnail'.
* @param string $attr Query string of attributes.
* @since 2.9.0
*/
echo apply_filters( 'post_thumbnail_html', $html, null, $post_thumbnail_id, $size, $attr );
endif;
}
<header class="post-header">
<h1 class="post-title">
<?php the_title(); ?>
</h1>
<div class="post-thumbnail">
<?php the_post_thumbnail_fallback(); ?>
</div>
</header>
$post_thumbnail_id = get_option( 'default_post_thumbnail' );
parent => 21
(фиксированный ID на одном языке) передавать parent => {ID отфильтрованный через Popylang}
. Вот так:$categories = get_categories([
'taxonomy' => 'category',
'type' => 'post',
'child_of' => '',
'parent' => pll_get_term(21),
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => 0,
'hierarchical' => 1,
'exclude' => '',
'include' => '',
'number' => 0,
'pad_counts' => false,
]);
SELECT post_id, post_status, meta_value
FROM wp_postmeta
JOIN wp_posts
ON wp_postmeta.post_id=wp_posts.id
WHERE meta_key = 'data-provedeniya' AND post_status = 'publish'
global $wpdb
всегда будет возвращать null
- ибо в вашем текущем глобальном scope (вашего кастомного кода который никак не связан с WP) данной переменной нет. Чтобы она там появилась, вам нужно подгрузить минимально необходимую часть ядра WP:define( 'SHORTINIT', true );
require( '/path/to/wp-load.php' );
if ( ! class_exists( 'ACF' ) ) :
// ...
endif;
is_plugin_active()
я бы не советовал использовать - ACF может работать как обычная PHP-библиотека, установленная с помощью того же Composer, и тогда она не будет в списке плагинов. можно ли настроить как в саблайме — выделяешь текст, нажимаешь кавычку, он выделяет слово кавычками
Иногда в каких то запутанных конструкциях с экранированием phpstorm начинает вести себя неадекватно — ставишь кавычку в одном месте, а он ставит её в другом, ты стираешь, пытаешься опять поставить где тебе надо, он удаляет и ставит в третьем. Потом вроде успокаивается, даёт мне всё прописать как надо, я нажимаю сохранить...х*як...опять перемешались кавычки.
SELECT * FROM photos WHERE task_id=X