$theme_locations = get_nav_menu_locations(); // взяли все theme_location
$menu_obj = get_term( $theme_locations['имя локации'], 'nav_menu' ); // ищем нашу theme_location
$menu_name = $menu_obj->name; // получаем имя
function ingredients_meta() {
add_meta_box( 'ingredients_meta',
__('Ингредиенты'),
'ingredients_meta_callback',
'recipes',
'advanced',
'default' );
}
add_action('add_meta_boxes', 'ingredients_meta');
function ingredients_meta_callback( $post ) {
echo _e('<p>Требуемые Ингредиенты для приготовления</p>');
wp_nonce_field( basename(__FILE__), 'ingredients_nonce');
$ingredients_stored_meta = get_post_meta( $post->ID );
wp_editor($ingredients_stored_meta['ingredients-recipes-original'][0], 'ingredients-recipes-original', array(
'wpautop' => 1,
'media_buttons' => 1,
'textarea_name' => 'ingredients-recipes-original', //нужно указывать!
'textarea_rows' => 20,
'tabindex' => null,
'editor_css' => '',
'editor_class' => '',
'teeny' => 0,
'dfw' => 0,
'tinymce' => 1,
'quicktags' => 1,
'drag_drop_upload' => false
) );
}
function ingredients_meta_save( $post_id ) {
// Checks save status
$is_autosave = wp_is_post_autosave( $post_id );
$is_revision = wp_is_post_revision( $post_id );
$is_valid_nonce = ( isset( $_POST[ 'ingredients_nonce' ] ) && wp_verify_nonce( $_POST[ 'ingredients_nonce' ], basename( __FILE__ ) ) ) ? 'true' : 'false';
// Exits script depending on save status
if ( $is_autosave || $is_revision || !$is_valid_nonce ) {
return;
}
// Checks for input and sanitizes/saves if needed
if( isset( $_POST[ 'ingredients-recipes-original' ] ) ) {
update_post_meta( $post_id, 'ingredients-recipes-original', $_POST[ 'ingredients-recipes-original' ] );
}
}
add_action( 'save_post', 'ingredients_meta_save' );
$post = get_post( $id );
echo apply_filters( 'the_content', $post->post_content );
<table class="shop_table cart" cellspacing="0">
<thead>
<tr>
<th class="product-name"><?php _e( 'Product', 'woocommerce' ); ?></th>
<th class="product-price"><?php _e( 'Price', 'woocommerce' ); ?></th>
<th class="product-price"></th>
</tr>
</thead>
<tbody>
$('#new a')[0].click();
.row-flex {
display: flex;
flex-flow: row wrap;
}
<div class="container-fluid">
<div class="row row-flex">
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">
... содержимое блока ...
</div>
</div>
</div>
remove_action( 'woocommerce_archive_description', 'woocommerce_taxonomy_archive_description', 10 );
add_action( 'woocommerce_after_shop_loop', 'woocommerce_taxonomy_archive_description', 100 );
add_action( 'woocommerce_single_product_summary', 'my_theme_my_action', 41 );
function my_theme_my_action() {
echo '<div class="">Код какой нужно вставить</div>';
}
add_filter( 'woocommerce_get_price_html', 'product_price_free_zero_empty', 100, 2 );
function product_price_free_zero_empty( $price, $product ){
if ( '' === $product->get_price() || 0 == $product->get_price() ) {
$price = '<span class="woocommerce-Price-amount amount">Цену уточняйте</span>';
}
return $price;
}
// Возврат нескольких значений:
function some() {
return [23, 42];
}
// Получение
[$a, $b] = some();
\var_dump($a, $b);
// Возврат нескольких значений:
function some() {
return ['a' => 23, 'b' => 42];
}
// Получение
['a' => $a, 'b' => $b] = some();
\var_dump($a, $b);
function some() {
yield 'a' => 23;
yield 'b' => 42;
}
foreach (some() as $key => $value) {
echo $key . ':' . $value; // a:23 b:42
}
function some() {
yield 23;
yield 42;
}
foreach (some() as $value) {
echo $value; // 23 42
}
function some() {
yield 23;
return 42;
}
$value = some();
echo $value->current(); // 23
$value->next();
echo $value->getReturn(); // 42
class DataTransferObject
{
private $a;
private $b;
public function __construct($a, $b)
{
$this->a = $a;
$this->b = $b;
}
public function getA()
{
return $this->a;
}
public function getB()
{
return $this->b;
}
}
function some() {
return new DataTransferObject(23, 42);
}
$value = some();
echo $value->getA(); // 23
echo $value->getB(); // 42
var fired = false;
window.addEventListener('scroll', () => {
if (fired === false) {
fired = true;
setTimeout(() => {
// Здесь все эти тормознутые трекеры, чаты и прочая ересь,
// без которой жить не может отдел маркетинга, и которые
// дико бесят разработчиков, когда тот же маркетинг приходит
// с вопросом "почему сайт медленно грузится, нам гугл сказал"
}, 1000)
}
});