echo __('My text');
используйте _e('My text');
._e( 'My text', 'my-textdomain' )
.через backgrond-image нельзя же, потому что не вписать <?php the_post_thumbnail(); ?> в свойствах css, и position: absolute нельзя использовать
<div class="post-head" style="background: url( <?php the_post_thumbnail_url(); ?> );">
<h1><?php the_title(); ?></h1>
</div>
зачем нужна сетка для верстки
будь то бутстрап или грид
если я все равно в контейнере отступаю в пкс от краев, задаю ширину в стилях и помещаю все в контейнер, а для телефонов оптимизирую через медиа запросы
folders:
- map: ~/Documents/dev/server
to: /home/vagrant/server
sites:
- map: homestead.test
to: /home/vagrant/server/homestead
- map: example.test
to: /home/vagrant/server/example
~/Documents
- dev
- server (вот эту папку маунтим на виртуалку)
- homestead (конкретный проект)
- example (конкретный проект)
homestead up --provision
Решил вернуться в саблайм, так как все остальное тормознутое слишком
Подскажите пожалуйста, если какой либо терминал?
"repositories": [
{
"type": "vcs",
"url": "git@bitbucket.org:user/repository-name.git"
}
],
"require": {
"user/repository-name": "dev-master"
},
<?php
/*
* Example plugin.
*
* Plugin Name: Example plugin
* Description: Plugin description.
* Version: 0.1.0
* Author: Ihor Vorotnov
* Author URI: https://ihorvorotnov.com
* Text Domain: cm
* Domain Path: /languages
* License: GPL-2.0+
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
*/
// Exit if accessed directly
defined( 'ABSPATH' ) or die();
/**
* Define default configuration for tabs and return it.
*
* @param null $key
*
* @return array
*/
function cm_config( $key = null ) {
// Define configuration
$config = array(
'main' => array (
'title' => 'Основные',
'variables' => array (
'variable1' => 'color 1',
'variable2' => 'color 2',
),
),
'header' => array (
'title' => 'Хедер',
'variables' => array (
'variable1' => 'color 1',
'variable2' => 'color 2',
),
),
'header1' => array (
'title' => 'Хедер1',
'variables' => array (
'variable1' => 'color 1',
'variable2' => 'color 2',
),
),
);
// If specific element of the config is requested
if ( ! is_null( $key ) && array_key_exists( $key, $config ) ) {
return $config[ $key ];
}
// Otherwise return the whole config
return $config;
}
/**
* Helper function to determine currently active tab and make sure it exists.
*
* @return string
*/
function cm_active_tab() {
// If the tab slug is passed via GET and it actually exists
if ( isset( $_GET['tab'] ) && array_key_exists( $_GET['tab'], cm_config() ) ) {
return esc_attr( $_GET['tab'] );
}
// Otherwise, the 'main' tab is the default
return 'main';
}
/**
* Register options page.
*/
function cm_add_plugin_page() {
add_options_page(
'Color Manager',
'Color Manager',
'manage_options',
'cm_settings',
'cm_options_page_output'
);
}
add_action( 'admin_menu', 'cm_add_plugin_page' );
/**
* Render options page HTML.
*/
function cm_options_page_output() {
?>
<div class="wrap">
<h1>Color Manager</h1>
<h2 class="nav-tab-wrapper">
<?php do_action( 'cm_settings_tabs' ); ?>
</h2>
<?php do_action( 'cm_settings_content' ); ?>
</div>
<?php
}
/**
* Render tabs dynamically.
*/
function cm_render_tabs() {
// Get the plugin config without globals everywhere
$config = cm_config();
// Loop through the elements from config and build tab links
foreach ( $config as $slug => $element ) {
// Build URL for current element
$url = admin_url( 'options-general.php?page=cm_settings&tab=' ) . $slug;
// Set default css class(es)
$classes = 'nav-tab';
// Add css class to active tab
if ( cm_active_tab() == $slug ) {
$classes .= ' nav-tab-active';
}
// Render the tab link HTML
printf( '<a href="%s" class="%s">%s</a>',
$url,
$classes,
$element['title']
);
}
}
add_action( 'cm_settings_tabs', 'cm_render_tabs' );
/**
* Render tab content dynamically.
*/
function cm_render_tab_content() {
// Get currently active tab slug
$active_tab = cm_active_tab();
// Get data for this tab from the config
$data = cm_config( $active_tab );
var_dump( $data );
// Load corresponding template part or call the function to render requested content.
// --------------------------------------------------------------
// Your code here...
// --------------------------------------------------------------
}
add_action( 'cm_settings_content', 'cm_render_tab_content' );
// Параметры удобнее задавать отдельно
$args = array(
'post_type' => APP_POST_TYPE,
'ignore_sticky_posts' => true,
'meta_query' => array(
array(
'key' => 'cp_category',
'value' => 'Не определено',
'compare' => '=',
),
),
);
// Получаем массив постов.
$categories = get_posts( $args );
// Перебираем массив, обязательно as $post, чтобы корректно работала функция setup_postdata()
foreach( $categories as $post ) {
// Устанавливаем текущую запись в глобальный scope
setup_postdata( $post );
// Подключаем шаблон, который уже сможет видеть корректные данные из глобального scope
get_template_part( 'loop', 'ad_listing' );
}
// Очищаем глобальный scope
wp_reset_postdata();
if ( ! is_single() ) {
// код будет выполнен только если это одна запись и ее тип не страница или аттачмент
}
if ( ! is_singular( 'post' ) ) {
// код будет выполнен везде кроме single типа post
}