Спрашиваем и отвечаем по Wordpress-3

Ligue-1
На сайте с 18.12.2011
Offline
23
#231

Здраствуйте. Как на wordpress можно организовать вот такую вот фишку: fc-arsenal.com, слева блок " Матч-центр" - нажмите на стрелочку влево или вправо, команды меняются. Как сделать такое на WP?

Hixon10
На сайте с 21.08.2010
Offline
125
#232
Ligue-1:
Здраствуйте. Как на wordpress можно организовать вот такую вот фишку: fc-arsenal.com, слева блок " Матч-центр" - нажмите на стрелочку влево или вправо, команды меняются. Как сделать такое на WP?

При клике по стрелке выполняется одна из двух функций:


$("#next-match-link").click(function(){
var block = $('div[rel="block-match"]');
//id example match-27
var id = $(block).attr('id').substring(6);
if(id > 0)
{
$.ajax({
type: "POST",
url: "/get_next_match_ajax/"+id,
success: function(data){
$(block).html(data['html']);
$(block).attr('id', "match-"+data['id']);
updateBlockTitle('next', data['id'], data['last_match_id']);
}
});
}
return false;
});


$("#prev-match-link").click(function(){
var block = $('div[rel="block-match"]');
var title_text = $('#block-views-matches-next-match h2');
//id example match-27
var id = $(block).attr('id').substring(6);
if(id > 0)
{
$.ajax({
type: "POST",
url: "/get_prev_match_ajax/"+id,
success: function(data){
$(block).html(data['html']);
$(block).attr('id', "match-"+data['id']);
updateBlockTitle('prev', data['id'], data['first_match_id']);
}
});
}
return false;
});

На сервере формируется html код, который нужно показать (код формируется в зависимости от переданного id) и отправляется обратно клиенту.

В чём трудность? В js скрипте, или в том, как по id сформировать html?

Веду свой невзрачный блог (http://hixon.ru/).
Ligue-1
На сайте с 18.12.2011
Offline
23
#233
Hixon10:
При клике по стрелке выполняется одна из двух функций:

$("#next-match-link").click(function(){
var block = $('div[rel="block-match"]');
//id example match-27
var id = $(block).attr('id').substring(6);
if(id > 0)
{
$.ajax({
type: "POST",
url: "/get_next_match_ajax/"+id,
success: function(data){
$(block).html(data['html']);
$(block).attr('id', "match-"+data['id']);
updateBlockTitle('next', data['id'], data['last_match_id']);
}
});
}
return false;
});


$("#prev-match-link").click(function(){
var block = $('div[rel="block-match"]');
var title_text = $('#block-views-matches-next-match h2');
//id example match-27
var id = $(block).attr('id').substring(6);
if(id > 0)
{
$.ajax({
type: "POST",
url: "/get_prev_match_ajax/"+id,
success: function(data){
$(block).html(data['html']);
$(block).attr('id', "match-"+data['id']);
updateBlockTitle('prev', data['id'], data['first_match_id']);
}
});
}
return false;
});


На сервере формируется html код, который нужно показать (код формируется в зависимости от переданного id) и отправляется обратно клиенту.
В чём трудность? В js скрипте, или в том, как по id сформировать html?

Трудность во всем :(. Я даже незнаю что, куда и откуда :)

LJ
На сайте с 24.07.2012
Offline
8
#234

Как в любом шаблоне можно сделать горизонтальное меню и подменю (а лучше два меню - вверху и внизу шапки), кто подскажет?

92
На сайте с 09.12.2011
Offline
21
#235

чем смотреть что бот зашел, прошелся по страницам. сеоультимэйт показывает неудачные заходы 404, а чем смотреть удачные?

SeVlad
На сайте с 03.11.2008
Offline
1609
#236
stundr:
В рубриках не выводятся записи, т.е. само название рубрики есть, а записей нет.
...
если название рубрики писать латиницей, то все работает, а если кириллицей, то не работает.

судя по всему проблема в кодировке базы\хостинга.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
ЗахарOFF
На сайте с 25.05.2008
Offline
182
#237

Здравствуйте!

Использую ЧПУ вида /%category%/%post_id%

Статьи из подрубрик выводятся таким образом: /рубрика/подрубрика/ид-статьи

каким образом можно сделать так: /подрубрика/ид-статьи

Реально ли такое сделать стандартными средствами или хаком, но без использования плагинов?

SeVlad
На сайте с 03.11.2008
Offline
1609
#238
ЗахарOFF:
Реально ли такое сделать стандартными средствами или хаком, но без использования плагинов?

Стандартными - нет, а хак по сути тот же плагин, только встроенный в тему.

Не уверен на 100%, но по моему убрать родительскую рубрику из урла нельзя.

==после гугления==

Оказывается можно. Вот тут есть решения. Сам, ессно, не проверял. ;)

=================

И вообще я крайне не рекомендую использовать подобные манипуляции с ЧПУ. Это можно сказать слабое место ВП (да и не ВП тоже ;) ) и периодически меняется алгоритмы работы. Вот и в 3.4 поменялось (перед тем в 3.3.1(или 2) тож менялось). Из-за чего пострадали многие, использовавшие плаги\хаки для удаления слова category из урла. (они использовали устаревший метод)

ЗахарOFF
На сайте с 25.05.2008
Offline
182
#239

SeVlad, да, нашел тоже такой плагин.

На 3.4.1. версии работает, единственная проблема, это у главных категорий, /category/ из урла не убралось =(

Если кто понимает, гляньте, как можно подправить/настроить

<?php

/*
Plugin Name: No Category Parents
Description: Removes category parents from your category permalinks. Now it also works for the posts permalinks, when using the /%category%/ permastruct.
Version: 0.2.2
Author: Sergio Milardovich
Author URI: Author URI: http://milardovich.com.ar/
Donate link: http://www.milardovich.com.ar/donate/
*/


/*
Based on "WP No Category Base" code -> http://wordpresssupplies.com/

Copyright 2009-2012 Sergio Milardovich (email : milardovich@wnadesign.com)

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/


add_filter ("pre_post_link", "filter_category"); // will apply to post permalink
add_filter ("user_trailingslashit", "myfilter_category");


add_filter ("category_link", "filter_category_link"); // will apply to post permalink


add_filter( 'rewrite_rules_array','my_insert_rewrite_rules' );
add_filter( 'query_vars','my_insert_query_vars' );
add_action( 'wp_loaded','my_flush_rules' );

// seems category filters are not working
add_action('created_category','my_flush_rules2');
add_action('edited_category','my_flush_rules2');
add_action('delete_category','my_flush_rules2');

// flush_rules() if our rules are not yet included
function my_flush_rules(){
update_option('category_base','');
$rules = get_option( 'rewrite_rules' );

//if ( ! isset( $rules['(.+?)-cat/?$'] ) ) { // have to comment this in order to refresh the rules
global $wp_rewrite;
$wp_rewrite->flush_rules();
//}
}

function my_flush_rules2(){
$rules = get_option( 'rewrite_rules' );

global $wp_rewrite;
$wp_rewrite->flush_rules();
}

// Adding a new rule
function my_insert_rewrite_rules( $rules )
{
$newrules = array();
$newrules['(.+?)-cat/?$'] = 'index.php?category_name=$matches[1]';
$newrules['(.+?)-cat/page/?([0-9]{1,})/?$'] = 'index.php?category_name=$matches[1]&paged=$matches[2]';

$categories = get_categories();


if ($categories)
{
foreach ($categories as $key => $val)
{
$posts = get_posts (array("name" => $val->slug));
if (!$posts)
{
$newrules['('.$val->category_nicename.')/?$'] = 'index.php?category_name=$matches[1]';
$newrules['('.$val->category_nicename.')/page/?([0-9]{1,})/?$'] = 'index.php?category_name=$matches[1]&paged=$matches[2]';

$newrules['.+?/('.$val->category_nicename.')/?$'] = 'index.php?category_name=$matches[1]';
$newrules['.+?/('.$val->category_nicename.')/page/?([0-9]{1,})/?$'] = 'index.php?category_name=$matches[1]&paged=$matches[2]';
}
}
}

return $newrules + $rules;
}

function my_insert_query_vars( $vars )
{
array_push($vars, 'id');
return $vars;
}


//add_filter('request', 'mycategory_rewrite_rules');

function mycategory_rewrite_rules() {
global $wp_rewrite;

echo "<pre>";
print_r ($wp_rewrite);
echo "</pre>";

// [(.+?)/?$] => index.php?category_name=$matches[1]

}


function filter_category_link ($termlink)
{
if (preg_match ("/\?cat=/", $termlink))
return $termlink;


$str = explode("/", $termlink);

$myslug = $slug = $str[count($str)-2];

// check if category slug exist in post

$posts = get_posts (array("name" => $slug));
preg_match ("/category.*?".$myslug."/", $termlink, $result);

if ($posts)
$slug .= "-cat";

$str = explode("/", $result[0]);

if (count($str) > 3)
$link = $str[count($str)-2]."/".$slug ;
else
$link = $slug;

$termlink = preg_replace ("/category.*?".$myslug."/", $link, $termlink);

return $termlink;
}


function filter_category ($permalink)
{
$permalink = str_replace ("%category%", "%mycategory%", $permalink);

return $permalink;
}

function myfilter_category ($string)
{
if (preg_match ("/%mycategory%/", $string))
{
$str = explode("/", $string);
$slug = $str[count($str)-2];

$posts = get_posts (array("name" => $slug));

$cats = get_the_category($posts[0]->ID);

if ( $cats ) {
usort($cats, '_usort_terms_by_ID');
$category = $cats[0]->slug;
if ( $parent = $cats[0]->parent )
{
$one = 1;
}
}

$string = preg_replace("/%mycategory%/", $category, $string);
}

return $string;
}
?>
AlexSasa
На сайте с 07.05.2011
Offline
25
#240

Подскажите как сделать такую реализацию. При добавлении поста или страницы на вордпресс проверяется есть ли такая или очень похожая публикация на сайте и выводятся похожие посты или страницы.

Трогательные поздравления своими словами в прозе тут (https://pozdravljalka.ru/)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий