https://www.templatemonster.com/blog/create-custom-page-template-wordpress-4-x/ - возможно вы это имели ввиду
да я понял Вас, я почему то подумал, что таких ограничений нет в wp. По Вашему вопросу можно сделать следующее
function wp_cpt_unique_post_slug($slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug) { if ( in_array( $post_status, array( 'draft', 'pending', 'auto-draft' ) ) ) return $slug; global $wpdb, $wp_rewrite; // store slug made by original function $wp_slug = $slug; // reset slug to original slug $slug = $original_slug; $feeds = $wp_rewrite->feeds; if ( ! is_array( $feeds ) ) $feeds = array(); $hierarchical_post_types = get_post_types( array('hierarchical' => true) ); if ( 'attachment' == $post_type ) { // Attachment slugs must be unique across all types. $check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND ID != %d LIMIT 1"; $post_name_check = $wpdb->get_var( $wpdb->prepare( $check_sql, $slug, $post_ID ) ); if ( $post_name_check || in_array( $slug, $feeds ) || apply_filters( 'wp_unique_post_slug_is_bad_attachment_slug', false, $slug ) ) { $suffix = 2; do { $alt_post_name = substr ($slug, 0, (200 - ( strlen( $suffix ) + 1 )) ) . "-$suffix"; $post_name_check = $wpdb->get_var( $wpdb->prepare($check_sql, $alt_post_name, $post_ID ) ); $suffix++; } while ( $post_name_check ); $slug = $alt_post_name; } } elseif ( in_array( $post_type, $hierarchical_post_types ) ) { if ( 'nav_menu_item' == $post_type ) return $slug; // Page slugs must be unique within their own trees. Pages are in a separate // namespace than posts so page slugs are allowed to overlap post slugs. $check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND post_type = %s AND ID != %d AND post_parent = %d LIMIT 1"; $post_name_check = $wpdb->get_var( $wpdb->prepare( $check_sql, $slug, $post_type, $post_ID, $post_parent ) ); if ( $post_name_check || in_array( $slug, $feeds ) || preg_match( "@^($wp_rewrite->pagination_base)?\d+$@", $slug ) || apply_filters( 'wp_unique_post_slug_is_bad_hierarchical_slug', false, $slug, $post_type, $post_parent ) ) { // $suffix = 2; // do { $alt_post_name = substr( $slug, 0, (200 - ( strlen( $suffix ) + 1 )) );// . "-$suffix"; // $post_name_check = $wpdb->get_var( $wpdb->prepare( $check_sql, $alt_post_name, $post_type, $post_ID, $post_parent ) ); // $suffix++; // } while ( $post_name_check ); $slug = $alt_post_name; } } else { // Post slugs must be unique across all posts. $check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND post_type = %s AND ID != %d LIMIT 1"; $post_name_check = $wpdb->get_var( $wpdb->prepare( $check_sql, $slug, $post_type, $post_ID ) ); if ( $post_name_check || in_array( $slug, $feeds ) || apply_filters( 'wp_unique_post_slug_is_bad_flat_slug', false, $slug, $post_type ) ) { // $suffix = 2; // do { $alt_post_name = substr( $slug, 0, (200 - ( strlen( $suffix ) + 1 )) );// . "-$suffix"; // $post_name_check = $wpdb->get_var( $wpdb->prepare( $check_sql, $alt_post_name, $post_type, $post_ID ) ); // $suffix++; // } while ( $post_name_check ); $slug = $alt_post_name; } } return $slug; } add_filter('wp_unique_post_slug', 'wp_cpt_unique_post_slug', 10, 6);
Url конечно должны быть разными. Но slug - это не есть url
Да. Проблем не будет.
Я с joomla не знаком, но могу предположить что ошибка может быть вызвана тем, что не перенесли необходимый код в контроллер. Скорее всего ваш hmenu там должен был наследовать какой-нибудь класс. И скорее всего метод genHMenu тоже там переопределялся или определялся.
data: 'filters=' + serialize,dataType: 'json',
- вот эти две строчки можете закомментировать или убрать вообще.
var serialize = JSON.stringify(filters);
url: 'index.php?route=module/ajax_filter/getProducts&filter='+filters.tab,
а на стороне сервера принимайте
echo json_encode($_GET['filter']);
Если у Вас cms не будет ничего тормозить, то должно заработать.
Согласен. Можно так же похожим цветом закрашивать...хотя в данном макете все-таки будет лучше repeat-y.
- вот это echo содержит в себе функцию getLoansbyMFOID, которая тоже вызывает echo, и прежде чем все данные подставятся и все будет отправлено клиенту, срабатывает echo внутри функции и получается, что то что внутри функции отправляется клиенту вперед того, что описано выше. Попробуйте подменить echo на return.
Ну во первых правильнее было бы подключить include("getloans.php"); за пределами getMFObyID и желательно подключать через require_once "getloans.php"; нужно конечно посмотреть getLoansbyMFOID прежде чем что то говорить. Возможно в этой функции вместо return стоит echo, но утверждать трудно.
for ($result = array(); $row = mysqli_fetch_assoc($query); $result[] = $row) {} - эту строчку можно заменить $result = mysqli_fetch_all($query, MYSQLI_ASSOC); - если я все правильно помню, результат будет тот же.
Скорее всего Вам лучше будет разделить три фоновых изображения для хедера, футера и блока с контентом. Самое легкое это поставить background-size: cover; - тогда фон будет растягиваться, но соответственно и размываться.